neos/ldap

Flow 的 LDAP 身份验证

维护者

详细信息

github.com/neos/ldap

源代码

问题

资助包维护!
shop.neos.io/neosfunding

安装数: 6,262

依赖项: 0

建议者: 0

安全: 0

星标: 7

关注者: 2

分支: 13

公开问题: 4

类型:neos-package

3.1.0 2022-04-22 16:02 UTC

README

示例 LoginController

LoginController.php

<?php
namespace My\Package\Controller;

use Neos\Flow\Annotations as Flow;
use Neos\Flow\Security\Authentication\Controller\AbstractAuthenticationController;

/**
 * @Flow\Scope("singleton")
 */
class LoginController extends AbstractAuthenticationController {

        /**
         * Default action, displays the login screen
         *
         * @param string $username Optional: A username to prefill into the username field
         * @return void
         */
        public function indexAction($username = NULL) {
                $this->view->assign('username', $username);
        }

        /**
         * @param \Neos\Flow\Mvc\ActionRequest $originalRequest
         * @return string|void
         */
        public function onAuthenticationSuccess(\Neos\Flow\Mvc\ActionRequest $originalRequest = NULL) {
                $this->redirect('status');
        }

        /**
         * Logs out a - possibly - currently logged in account.
         *
         * @return void
         */
        public function logoutAction() {
                $this->authenticationManager->logout();
                $this->addFlashMessage('Successfully logged out.');
                $this->redirect('index');
        }

        /**
         * @return void
         */
        public function statusAction() {
                $this->view->assign('activeTokens', $this->securityContext->getAuthenticationTokens());
        }

}

Index.html

<f:form action="authenticate" >
        <f:flashMessages class="errorMessages" />
                <div>
                        <label>User</label>
                        <input type="text" name="__authentication[Neos][Flow][Security][Authentication][Token][UsernamePassword][username]" id="username" value="{username}" />
                </div>
                <div>
                        <label>Password</label>
                        <input type="password" name="__authentication[Neos][Flow][Security][Authentication][Token][UsernamePassword][password]" id="password" />
                </div>
                <f:form.submit value="Login" />
        </div>
</f:form>

Status.html

Status: Logged in<br/>
User: {activeTokens.LdapProvider.account.accountIdentifier}<br/>
<f:link.action action="logout">Logout</f:link.action>

请确保您已配置策略,以便用户可以使用登录和注销操作。为此,请使用类似于以下内容的 Policy.yaml:

resources:
  methods:
        My_Package_LoginController: 'method(My\Package\Controller\LoginController->(index|status|login|authenticate|logout)Action())'

  acls:
    Everybody:
      methods:
        My_Package_LoginController: GRANT

配置示例

您可以在 Neos.Ldap 包的 Configuration/ 文件夹中找到 Ldap 和 Active Directory 的 Settings.yaml 文件示例。