2016-07-28 10 views
0

Ich entwickle eine Anwendung mit Symfony 3.1 und ich habe Probleme bei der Ldap-Authentifizierung. Der folgende Code:Symfony 3.1 LDAP-Authentifizierung funktioniert nicht

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, 
        ) 
    ); 
} 

Ich habe alles versucht, ich konnte, und erhielt keine Fehler bei logs , nur die Nachricht über die LdapClient-Klasse ist veraltet.

Konnte mir jemand helfen? Bitte.

+0

Haben Sie in 'var/logs/dev.log' eingecheckt und versucht, die DEV-Umgebung zu verwenden, indem Sie' app_dev.php' an Ihre URL anhängen? Die Debug-URL zeigt möglicherweise mehr Informationen an. –

+0

Ja! Ich habe alle Stackoverflow-Tutorials für symfony 3.1 und ldap durchsucht und keinen Erfolg. Aber danke, dass du versucht hast zu helfen! – fabionvs

+0

Ist das AD oder OpenLDAP? Vom Aussehen von 'SAMAccountName' Gebrauch würde ich AD schätzen? Wenn das der Fall ist, ändern Sie 'dn_string: 'sAMAccountName = {username}'' in 'dn_string: '{username}'' – ChadSikorra

Antwort

1

Hallo Symfony 3 Entwickler!

löste ich das Problem mit LdapToolsBundle

denke ich, das Problem mit Wache wurde nicht obwohl Symfony 3.1. Aber mit LdapTools habe ich mein Problem gelöst und es ist sehr einfach damit zu arbeiten. Vielen Dank!

0

Wenn die Symfony LDAP-Lösung nicht funktioniert, müssen Sie möglicherweise mit "FR3DLdapBundle" und FOSBundle gehen.

Ich habe ein Tutorial hier: https://alvinbunk.wordpress.com/2016/03/25/symfony-ad-integration/

Dies funktioniert auf jeden Fall, da ich es die ganze Zeit.


EDIT # 2

habe ich einen zweiten Artikel, die einfache AD-Authentifizierung macht: https://alvinbunk.wordpress.com/2017/09/07/symfony-ldap-component-ad-authentication/

ich Ihre Fragen erwähnten oben lösen sollte.

Verwandte Themen