1

有没有办法定义自己的加密/解密而不是使用纯文本密码存储?您可以拥有自己的算法并作为流程的一部分单独运行吗?我是新手,并且在线文档虽然详细并没有指定任何具体的方法。这是特定于 OpenLDAP 和当前用于身份验证的方法。

4

3 回答 3

4

为了能够让服务器默认为您哈希密码,您必须添加密码策略覆盖和指令。

如果您使用在线 cn=config 方法,请向您的 olcDatabase 对象添加一个覆盖子条目。

dn: olcOverlay={0}ppolicy,olcDatabase={2}hdb,cn=config
objectClass: olcPPolicyConfig
olcOverlay: {0}ppolicy
olcPPolicyHashCleartext: TRUE

Slapd.conf 方法:

database bdb
suffix "dc=example,dc=com"
...
# invokes password policies for this DIT only
overlay ppolicy
ppolicy_hash_cleartext

然后,当您以纯文本形式添加具有 userpassword 属性的新用户时,它将存储经过哈希处理的密码。我相信默认值是一个非常安全的盐渍 sha1。您还应该考虑限制对 userpassword 属性的访问。

olcAccess: to attrs=userPassword by self write by * auth
于 2011-08-01T14:41:30.453 回答
0

如果您将密码用于身份验证,则永远不应该将密码存储在可逆加密中!

您应该使用单向哈希函数存储密码:MD5、SHA1、SHA256。如果你不是绝对需要以某种旧的、特定的格式存储它,你应该总是给它们加盐。Salted SHA1 是 OpenLDAP 的良好默认值。

问题是,您需要使用 LDAP 扩展操作来更改密码,而不是常规的 ldapmodify 更新,才能使其正常工作。最好用ppolicy这种方式实际强制设置密码。如果您愿意,您可能需要进行密码质量检查和老化。

于 2011-12-20T18:19:37.407 回答
0

apache directory studio 可以为你完成这个

此 ldap 浏览器检测用户密码 OID 并提供对密码进行哈希处理的接口。

如:userPassword::e01ENX1Lc25MZmNBclBBQ0Q2M0NKamxTYll3PT0=

(它只是工作,因为它是内置的)阅读 Openldap 自述文件以获取更多信息:此目录包含项目不积极支持的密码机制的本机 slapd 插件。目前这包括 Kerberos、Netscape MTA-MD5 和 RADIUS 密码机制。Apache APR1 MD5 和 BSD/Paul Henning Kamp MD5 机制也包括在内。

要使用 Kerberos 插件,请添加:

模块加载 pw-kerberos.so

到您的 slapd 配置文件。

亚达亚达亚达

于 2011-05-04T23:32:34.337 回答