在Open Ldap for 400K用户中将纯文本密码更新为ssha的方法

是否有任何命令/扩展可用来更新从LDAP服务器中的用户对象的“userPassword”属性到SSHA从纯文本哈希passsword?

我们发现LADP中的用户以纯文本forms存储。 一旦我们启用了密码策略,新用户的密码就存储在SSHA中。 如何将现有用户的纯文本密码迁移到SSHA密码?

版本更新 – 操作系统:CentOS版本6.6 – 64位

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开关。 (多主机)复制的混合程度如何,取决于你想要的方法。

这个问答可能也有利于决定一个方法。