Храните пароли пользователей в виде простого текста на сервере OpenLDAP - PullRequest
0 голосов
/ 05 февраля 2019

Я использую OpenLDAP, предоставленный в osixia/openldap образе докера (https://github.com/osixia/docker-openldap), но он хранит все хэшированные пароли.

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

Я пытаюсьудаление (используя пользователя cn=admin,cn=config) записи, которая идет с изображением cn={4}ppolicy,cn=schema,cn=config, которое, я думаю, может быть виновником, но ldapdelete возвращает Server is unwilling to perform (53).

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 05 февраля 2019

Если вы храните пароль в виде простого текста, вы можете получить его в виде простого текста.

Вам просто нужно проверить в ACL, что пользователь, которого вы используете для чтения, имеет правильные права для этого.

Запись политики паролей, о которой вы говорите, - это просто определение схемы, которая позволяет вам определять политику паролей, но ничего не применяет.(Ошибка 53 заключается в том, что вы не можете удалить схему из работающего OpenLDAP, чтобы предотвратить удаление схемы, которая может использоваться записью)

Согласно тому, что я вижу в github об используемом вами образе докераиспользуется ACL:

olcAccess: to attrs=userPassword,shadowLastChange 
           by self write 
           by dn="cn=admin,{{ LDAP_BASE_DN }}" write 
           by anonymous auth 
           by * none

. Это означает, что только пароль пользователя или учетной записи администратора может прочитать поле пароля. userPassword

Именно этот ACL необходимо изменитьудовлетворить ваши потребности.ACL должен быть расположен здесь:

dn: olcDatabase={1}{{ LDAP_BACKEND }},cn=config

...