изменить пароль ldap с помощью phpldap с учетом назначенных политик

Я пытаюсь написать блестящий php-сервис, который позволил бы пользователям менять свои пароли.
Я пришел к использованию функции ldap_modify. Все ок, передаю дн и новый пароль пользователя (или его хэш), и пользователь может успешно войти в систему впоследствии.

Проблема в том, что этому пользователю назначена политика паролей, которая запрещает длину паролей < 2. После передачи такого пароля (или хэш) для ldap_modify я не получаю ошибок, исключений, что угодно.

Почему ldap не проверяет пароли в соответствии с назначенными политиками паролей?

В качестве временного решения я могу прочитать запись политики и проверить длину вручную …

0

Решение

Существует инструмент командной строки под названием ldappasswd (на некоторых linux-дистрибутивах это называется slappasswd IIRC), который следует использовать для создания хэша паролей. Этот инструмент IIRC проверяет введенный пароль на соответствие политике паролей, установленной для данного пользователя.

Когда вы вручную изменяете значение пароля, LDAP-сервер не имеет возможности проверить его, так как он является атрибутом, как и все остальные, поэтому вы можете изменить его без вмешательства сервера. И поскольку вы устанавливаете хэш в качестве значения, у LDAP-сервера нет шансов узнать, соответствует ли пароль директивам политики паролей, поскольку он фактически не видит пароль в неисключенном состоянии. Поэтому вам придется проверить политику самостоятельно до хеширование пароля.

0

Другие решения

Решение: проблема заключалась в том, что у политики, на которой я тестировал, был атрибут pwdCheckQuality установить в 0, что отключило все проверки … Вторая проблема заключалась в том, что пользователи-администраторы в LDAP игнорировали политики паролей — мне пришлось провести все тестирование на простом пользователе

0

По вопросам рекламы [email protected]