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

Хеширование паролей Openldap с помощью olcPasswordHash

Привязываю сделать openldap для хранения всех userPassword атрибуты, хешированные с {SSHA} алгоритм. Мне удалось настроить frontend db с помощью olcPasswordHash :

dn: olcDatabase={-1}frontend
objectClass: olcDatabaseConfig
objectClass: olcFrontendConfig
olcDatabase: {-1}frontend
structuralObjectClass: olcDatabaseConfig
creatorsName: cn=config
createTimestamp: 20181218082812Z
olcPasswordHash: {SSHA}     <------------configured with ldapmodify
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth

Но даже после перезапуска службы slapd новые изменения / создания паролей (я использую ldapvi для редактирования ldifs) по-прежнему отображаются в виде открытого текста, и в ldap.log нет ничего плохого. Обратите внимание, что если я выберу запись пароля в зашифрованном формате (с тегом {SSHA} впереди), он будет работать нормально. Проблема в том, что когда я пишу его открытым текстом, он не шифруется автоматически после сохранения и выхода.

Любые идеи?

Этот параметр применяется только при использовании расширенной операции RFC 3062, т. Е. При использовании ldappasswd. Просто редактировать записи с помощью обычных операций LDIF не получится. Если вы хотите заполнить записи зашифрованным значением, используйте slappasswd для генерации хеша.

Редактировать: Глядя конкретно на документация ldapvi, похоже, используется формат, подобный LDIF, с некоторыми расширениями. Чтобы атрибуты были зашифрованы, необходимо указать атрибут, используя форму:

userPassword:ssha mysecret

Я не думаю olcPasswordHash настройка имеет какое-либо отношение к этой функциональности.

Если вы хотите, чтобы slapd генерировал хэш пароля из открытого текста пользовательский пароль значение в запросе на изменение, то вам необходимо настроить slapo-ppolicy с директивой ppolicy_hash_cleartext.