LDAP и Symfony: не удалось завершить поиск с помощью dn - PullRequest
0 голосов
/ 05 августа 2020

Я пытаюсь передать свою заявку на Symfony. У меня проблема с аутентификацией. С PHP я использовал этот код для проверки подключения к активному каталогу

$ldap_host = "%MY AD HOST%";
$ldap_dn = cn=srv_ldap,ou=Service,ou=Applicatifs,ou=Utilisateurs,ou=DomaineInterne,dc=mydomain,dc=pri";
$ldap_usr_dom = '@mydomain.pri';
$ldap = ldap_connect($ldap_host);
ldap_set_option($ldap,LDAP_OPT_PROTOCOL_VERSION,3);
ldap_set_option($ldap,LDAP_OPT_REFERRALS,1);

// verify user and password
if($bind = @ldap_bind($ldap, $user.$ldap_usr_dom, $password)) {

С Symfony я использовал Symfony Component Ldap:

  • config \ services .yaml
[...]
    Symfony\Component\Ldap\Ldap:
        arguments: ['@Symfony\Component\Ldap\Adapter\ExtLdap\Adapter']
    Symfony\Component\Ldap\Adapter\ExtLdap\Adapter:
      arguments:
      - host: %MY AD HOST%
        port: 389
        #encryption: tls
        options:
          protocol_version: 3
          referrals: false
  • config \ packages \ security.yaml
...
[...]
 providers:
        ad_ldap:
            ldap:
                service: Symfony\Component\Ldap\Ldap
                base_dn: cn=srv_ldap,ou=Service,ou=Applicatifs,ou=Utilisateurs,ou=DomaineInterne,dc=mydomain,dc=pri
                default_roles: ROLE_USER
                uid_key: sAMAccountName
 firewalls:
       main:
            pattern: ^/
            anonymous: true
            lazy: true

           form_login_ldap:
                provider: ad_ldap
                service: Symfony\Component\Ldap\Ldap
                dn_string: 'sAMAccountName={username}@mydomain.pri'
                check_path: security_login
                login_path: security_login
                csrf_token_generator: security.csrf.token_manager
                default_target_path: blog_index

У меня ошибка LdapException с сообщением: Не удалось завершите поиск с помощью dn "cn = srv_ldap, ou = Service, ou = Applicatifs, ou = Utilisateurs, ou = DomaineInterne, dc = mydomain, dc = pri", query "(sAMAccountName = jane_admin)" и фильтров "*". Ошибка LDAP была [1] Операционная ошибка.

Я пытаюсь заменить "dn_string: 'sAMAccountName={username}@mydomain.pri'" другими вещами, но это сообщение все еще появляется ...

...