Способ обновить незашифрованный пароль к ssha в Открытом ldap для 400K Пользователей

Действительно ли там какая-либо команда/расширение доступна для обновления атрибута "userPassword" от пользовательского объекта в сервере LDAP к хешированному паролю SSHA из простого текста?

мы нашли, что пользователи в LADP хранятся в простом тексте. После того как мы включаем политику паролей, пароль новых пользователей хранится в SSHA. Как переместить незашифрованный пароль существующих пользователей в пароль SSHA?

Обновление на Версии - ОС: выпуск 6.6 CentOS - 64 бита

  • Версия OpenLdap: openldap-servers-2.4.39

  • Облако: AWS

  • Тип экземпляра: r3.xlarge

  • Два сервера LDAP

2
задан 3 August 2015 в 14:48
1 ответ

Документация OpenLDAP предоставляет несколько примеров кода в FAQ , которые вы можете использовать для создания собственных сценариев на вашем любимом языке сценариев для преобразования паролей в формате открытого текста в SSHA.
Примечание: Не используйте одну и ту же соль для всех ваших пользователей.

Экспорт (части) вашего каталога в каталог в формате LDIF с помощью slapcat и убрать скрипт!

Для небольшого количества паролей в открытом виде вы можете просто сгенерировать LDIF, чтобы обновить их:

dn: cn=Alice, ou=Users, o=example, c=com
changetype: modify 
replace: userPassword 
userPassword: {SSHA}xxxxxxxxxxxxxxxx 

dn: cn=Bob, ou=Users, o=example, c=com
changetype: modify 
replace: userPassword 
userPassword: {SSHA}abcabcabcbacbabcabc 

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

Обычно изменение базы данных в автономном состоянии происходит намного быстрее. Снова выполните экспорт с помощью slapcat, преобразуйте поля открытого текста userPassword: в полученный LDIF и используйте slappadd , чтобы перезагрузить его. Возможно, с переключателями -q и -s . Насколько хорошо это сочетается с репликацией (с несколькими мастерами), немного зависит от вашего предполагаемого подхода.

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

2
ответ дан 3 December 2019 в 11:36

Теги

Похожие вопросы