Привязываю сделать 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.