Назад | Перейти на главную страницу

Сервер каталогов CentOS - изменение пароля через LDAP Modify, передача старого пароля

Это может быть немного странно, так как до сих пор мне не удалось найти решение.

Он установлен в CentOS 5.8 и использует CentOS-Directory / 8.2.8 B2012.041.1227.

Просто я использую приложение, которое предложит пользователю изменить свой пароль (OpenAM). В основном это работает нормально, но если DS настроен для хранения истории паролей, клиентское приложение не может изменить пароль, постоянно переходя в «Пароль в истории». Это не очень полезно, тем более что я знать что пароль ранее не использовался.

Посидев с Wireshark, я увидел, что клиентское приложение отправляет следующий запрос:

dn: uid=AUser,ou=People,dc=testldap
changetype: modify
delete: userpassword
userpassword: location
-
add: userpassword
userpassword: american_psycho

Который закипает с «Паролем в историю». Я попробовал тот же запрос в командной строке:

$ ldapmodify -h host -p 389 -D "uid=AUser,ou=People,dc=testldap" -w location
dn: uid=AUser,ou=People,dc=testldap
changetype: modify
delete: userpassword
userpassword: location
-
add: userpassword
userpassword: american_psycho
^D
Processing MODIFY request for uid=AUser,ou=People,dc=testldap
MODIFY operation failed
Result Code:  19 (Constraint Violation)
Additional Information:  password in history

Однако, если я попробую следующее:

$ ldapmodify -h host -p 389 -D "uid=AUser,ou=People,dc=testldap" -w location
dn: uid=AUser,ou=People,dc=testldap
changetype: modify
delete: userpassword 
-
add: userpassword
userpassword: american_psycho
^D
Processing MODIFY request for uid=AUser,ou=People,dc=testldap
MODIFY operation successful for uid=AUser,ou=People,dc=testldap

Тогда это, очевидно, работает, с той лишь разницей, что на этот раз я не передаю старый пароль. Я понимаю, почему вы хотите передать значение для удаления (например, если это многозначный атрибут), но я не понимаю, почему DS проверяет его по истории паролей ...

Я проверил файлы журналов, и даже при включенном журнале ничего полезного не вижу ...

Нет возможности настроить клиентское приложение на не отправьте старый пароль, не создавая его самостоятельно, поэтому я действительно надеюсь, что есть способ настроить CentOS Directory Server для обработки этого. Я знаю, что это поддерживается Active Directory (или было в какой-то момент): http://msdn.microsoft.com/en-us/library/cc223249.aspx Но я не могу понять, как это поддерживается в CentOS DS.

slapcat -H ldpap://host:389/uid=AUser,ou=People,dc=testldap -l export.ldif

Эта команда экспортирует запись каталога (или всю базу данных) в формат LDIF.
Если что-то не так с базой данных, вы можете исправить это и импортировать Файл LDIF.