2017-02-23 137 views
2

Я борюсь с аутентификацией ldap в проекте symfony.Symfony3 LDAP аутентификация связывает учетные данные

Моя служба выглядит следующим образом:

ldap: 
    class: Symfony\Component\Ldap\Ldap 
    factory: ['Symfony\Component\Ldap\Ldap', 'create'] 
    arguments: 
     - 'ext_ldap' 
     - host: 'ldap.example.com' 

Привязать и пример запроса к серверу LDAP работают отлично:

$ldap = $this->get('ldap'); 
$ldap->bind('binduser', 'bindpw'); 
$query = $ldap->query('OU=MyBusiness,DC=example,DC=com', 'sAMAccountName=xxx'); 

Теперь я хочу, чтобы выполнить проверку подлинности на сервере LDAP. Я использовал настройки брандмауэра от http://symfony.com/doc/current/security/ldap.html#configuration-example-for-form-login. Но большой вопрос в том, где можно поместить учетные данные связывания здесь?

Соответствующая запись в журнале здесь:

php.DEBUG: Warning: ldap_bind(): Unable to bind to server: Invalid credentials 

Так что это довольно очевидно, что не хватает, но я не мог найти способ, чтобы обеспечить полномочия привязки к form_login_ldap.

Ссылка на http://symfony.com/doc/current/reference/configuration/security.html также не показывает, как их обеспечить.

Спасибо!

ответ

0

Учетные данные привязки - это те, которые были отправлены пользователем в форме.

Как вы видите здесь http://symfony.com/doc/current/security/ldap.html#configuration-example-for-form-login

  service: ldap 
      dn_string: 'uid={username},dc=example,dc=com' 

вам просто нужно указать dn_string и пользователь будет удостоверяться с его полномочия вызова ldap_bind.

Является ли ваш пользователь (тот, который вы ввели в форме), уполномоченный на ldap_bind? Тот, который вы вводите в конфигурацию поставщика LDAP-пользователя, если он у вас есть, для этой цели бесполезен.

Форма Войти традиционная форма Логин, который можно сделать, следуя http://symfony.com/doc/current/security/form_login_setup.html

+0

Привет, не пользователи, которые будут вводить свои учетные данные в регистрационную форму не допускается связываться с сервером LDAP. Существует один конкретный пользователь, которому разрешено подключаться к серверу ldap, и с этим пользователем я мог бы выполнять запросы. Основным требованием для этого проекта является наличие двух пользовательских каталогов. (По крайней мере, я думаю, я должен решить это с помощью двух пользовательских каталогов) – marcus

+0

, тогда вы не можете использовать 'form_login_ldap'. вы должны реализовать свою собственную систему. взгляните на это http://symfony.com/doc/current/security/custom_password_authenticator.html – ste

+0

Хорошо - да, чем больше я читаю и тестирую, тем больше понимаю, что мне приходится писать собственный аутентификатор. Спасибо за вашу поддержку;) – marcus

 Смежные вопросы

  • Нет связанных вопросов^_^