繁体   English   中英

Symfony 3.1 Ldap身份验证不起作用

[英]Symfony 3.1 Ldap Authentication Not Working

我正在使用Symfony 3.1开发应用程序,而Ldap身份验证遇到问题。 如下代码:

services.yml

ldap:
    class: 'Symfony\Component\Ldap\LdapClient'
    arguments:
        - server.test.br   # host
        - 389         # port
        - 3           # version
        - false       # SSL
        - false        # TLS

安全性

security:
providers:
    chain_provider:
        chain:
            providers: [my_ldap]
    my_ldap:
        ldap:
            service: ldap
            base_dn: dc=test,dc=br
            search_dn: cn=s00027,ou=Contas Administrativas de Sistemas,ou=Departamento de Tecnologia,dc=test,dc=br
            search_password: pass
            default_roles: ROLE_USER
            uid_key: sAMAccountName
            filter:  '({uid_key}={username})'

firewalls:
    dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false

    admin:
        anonymous: true
        pattern:   ^/
        form_login_ldap:
            provider: chain_provider
            service: ldap
            dn_string: 'sAMAccountName={username}'
            check_path: /login_check
            login_path: /login
        logout:
            path: /logout
            target: /

    default:
        form_login_ldap:
            provider: chain_provider
            service: ldap
            dn_string: "uid={username},DC=test,DC=br"
            check_path: /login_check
            login_path: /login

access_control:
    - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/admin, roles: ROLE_ADMIN }

SecurityController.php

 /**
 * @Route("/login_check", name="login_check")
 */
public function loginAction(Request $request) {

    $authenticationUtils = $this->get('security.authentication_utils');

    $error = $authenticationUtils->getLastAuthenticationError();

    $lastUsername = $authenticationUtils->getLastUsername();

    return $this->render(
                    'AppBundle:Security:login.html.twig', array(
                // last username entered by the user
                'last_username' => $lastUsername,
                'error' => $error,
                    )
    );
}

我已尽一切努力,并且在日志中未收到任何错误,仅弃用了有关LdapClient类的消息。

有人可以帮我吗? 请。

您好Symfony 3开发人员!

我使用LdapToolsBundle解决了问题

我认为问题不在于使用Guard,尽管是Symfony 3.1。 但是,使用LdapTools解决了我的问题,使用起来非常容易。 谢谢!

如果Symfony LDAP解决方案不起作用,则可能必须使用“ FR3DLdapBundle”和FOSBundle。

我在这里有一个教程: https : //alvinbunk.wordpress.com/2016/03/25/symfony-ad-integration/

这肯定有效,因为我一直都在使用它。


编辑#2

我创建了第二篇文章,使AD身份验证更容易: https : //alvinbunk.wordpress.com/2017/09/07/symfony-ldap-component-ad-authentication/

我应该解决您上面提到的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM