Ldap

使用 olcPasswordHash 散列 Openldap 密碼

  • June 4, 2019

我打算讓 openldap 儲存所有用算法userPassword散列的屬性{SSHA}。我設法使用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} 標籤)它可以正常工作。問題是當我以明文形式編寫它時,在我保存並退出後它不會自動加密。

有任何想法嗎?

如果要讓 slapd 從修改請求中的明文userPassword值生成密碼雜湊,則必須使用指令ppolicy_hash_cleartext配置slapo- ppolicy 。

此設置僅在您使用 RFC 3062 擴展操作時適用,即使用ldappasswd. 僅使用正常的 LDIF 操作編輯條目是行不通的。如果要使用加密值播種條目,請使用slappasswd生成雜湊。

**編輯:**專門查看ldapvi 文件,它似乎使用了帶有一些擴展的類似 LDIF 的格式。要加密屬性,您需要使用以下形式指定屬性:

userPassword:ssha mysecret

我認為該olcPasswordHash設置與該功能沒有任何關係。

引用自:https://serverfault.com/questions/969037