Php и openldap получают более конкретный код ошибки для пароля с истекшим сроком - PullRequest
1 голос
/ 21 февраля 2012

У меня возникли проблемы с получением более точного номера ошибки для политики с истекшим сроком действия пароля ldap.На самом деле я получаю сообщение об ошибке № 49, даже если пароль неправильный или срок действия пароля истек и его необходимо изменить.

Я использую сервер openldap и функции php ldap.(ldap_bind, ldap_error и ldap_errno)

Я также пытался получить дополнительную информацию, используя ldap_get_option ($ connect, 0x0032, $ extended_error) без успеха.

Есть ли какие-либо настройки, которые янужно сделать на моем сервере ldap, чтобы он возвратил более конкретный номер ошибки или метод, чтобы выяснить причину неверной ошибки учетных данных?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 22 февраля 2012

С наложением политики паролей вы можете настроить его на отправку обратно кода ошибки блокировки.См. http://www.zytrax.com/books/ldap/ch6/ppolicy.html параметр блокировки ppolicy_use_lockout.Еще одна приятная функция, которую вы можете реализовать, это предупреждение об истечении срока действия пароля и льготный вход в систему.Предупреждение об истечении срока действия немного сложнее в реализации.В основном это включает чтение элемента управления ответом, который возвращается из запроса на привязку.Если вы пытаетесь сделать это в Windows, вам нужно убедиться, что модуль php ldap связан с клиентской библиотекой openldap, а не с winldap32.dll.Я не знаю достаточно о php, чтобы сказать, что это или нет.Достаточно сказать, что библиотека winldap сломана настолько, что ее использование с чем угодно, кроме Active Directory, работает только для основ, и вы никогда не сможете прочитать элементы управления ответом из запроса на привязку.

0 голосов
/ 22 февраля 2012

Вам просто нужно использовать расширенную операцию изменения пароля и обработать расширенный ответ.

...