Openldap 使用 olcPasswordHash 对密码进行哈希处理

Openldap 使用 olcPasswordHash 对密码进行哈希处理

我正在尝试让 openldap 存储所有使用算法userPassword散列的属性{SSHA}。我设法使用以下方法配置前端数据库:olc密码哈希

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} 标签),它会正常工作。问题是,当我以明文形式写入时,在我保存并退出后,它不会自动加密。

有任何想法吗?

答案1

如果你想让 slapd 从明文生成密码哈希用户密码修改请求中的值,那么你必须配置slapo政策with 指令ppolicy_hash_cleartext

答案2

此设置仅在您使用 RFC 3062 扩展操作(即使用)时适用ldappasswd。仅使用常规 LDIF 操作编辑条目不起作用。如果您想使用加密值播种条目,请使用slappasswd生成哈希值。

编辑:具体来看ldapvi 文档,它似乎使用类似 LDIF 的格式,但有一些扩展。要加密属性,您需要使用以下形式指定属性:

userPassword:ssha mysecret

我认为该olcPasswordHash设置对该功能没有任何影响。

相关内容