是否有任何命令/扩展可用来更新从LDAP服务器中的用户对象的“userPassword”属性到SSHA从纯文本哈希passsword?
我们发现LADP中的用户以纯文本forms存储。 一旦我们启用了密码策略,新用户的密码就存储在SSHA中。 如何将现有用户的纯文本密码迁移到SSHA密码?
版本更新 – 操作系统:CentOS版本6.6 – 64位
OpenLdap版本:openldap-servers-2.4.39
云:AWS
实例types:r3.xlarge
两个LDAP服务器
OpenLDAP文档提供了FAQ中的一些示例代码,您可以使用这些代码以您最喜欢的脚本语言创build自定义脚本,以将明文密码转换为SSHA。
注意:请不要为所有用户使用相同的盐。
将目录导出(部分)到目录以LDIF格式与slapcat和脚本!
对于less量明文密码,您可以简单地生成一个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
您可能想要启动一个testing服务器,并基准testing使用LDIF进行更新的时间。 AFAIK在密码字段中没有索引,所以性能可能足以满足您的需要,但通常通过LDAP接口的速度相对较慢(而且还需要更新许多索引时速度较慢)。 其中一个优点是使用LDIF将遵循您的复制结构。
通常修改处于离线状态的数据库要快得多。 再次使用slapcat进行导出,在生成的LDIF中转换明文userPassword:字段并使用slappadd重新加载它。 也许用-q和-s开关。 (多主机)复制的混合程度如何,取决于你想要的方法。
这个问答可能也有利于决定一个方法。