2016-07-28 8 views
0

Symfony 3.1을 사용하는 응용 프로그램을 개발 중이며 Ldap 인증에 문제가 있습니다. 다음 코드 :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.yml

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 클래스에 대한 메시지 만 사용되지 않습니다.

아무도 도와 줄 수 있습니까? 부디.

+0

'var/logs/dev.log'를 체크인하고 URL에'app_dev.php'를 추가하여 DEV 환경을 사용해 보았습니까? 디버그 URL에 자세한 정보가 표시 될 수 있습니다. –

+0

예! 심포니 3.1 및 ldap에 대한 모든 Stackoverflow 자습서를 검색했으며 성공하지 못했습니다. 하지만 도와 줘서 고마워! – fabionvs

+0

이 광고 또는 OpenLDAP입니까? 'sAMAccountName'의 모습에서 AD를 추측 할 수 있을까요? 그렇다면'dn_string : 'sAMAccountName = {username}'을'dn_string : '{username}'' – ChadSikorra

답변

1

안녕하세요 Symfony 3 개발자!

나는

LdapToolsBundle 내가 심포니 3.1 있지만 문제가 가드를 사용하지 않은 생각 사용하여 문제를 해결했다. 그러나 LdapTools를 사용하면 문제가 해결되며 작업하기가 매우 쉽습니다. 감사합니다.

0

Symfony LDAP 솔루션이 작동하지 않는 경우 "FR3DLdapBundle"및 FOSBundle을 사용해야 할 수도 있습니다.

내가 여기 자습서를 가지고 : 나는 모든 시간을 사용하기 때문에 https://alvinbunk.wordpress.com/2016/03/25/symfony-ad-integration/

이 확실히 작동합니다. https://alvinbunk.wordpress.com/2017/09/07/symfony-ldap-component-ad-authentication/

나는 당신의 문제는 위에서 언급 한 해결해야


편집 # 2

나는 AD 인증을 쉽게 만드는 두 번째 기사를 만들었습니다.

관련 문제