OpenLDAP身份验证

时间:2011-05-04 14:01:00

标签: openldap

有没有办法定义自己的加密/解密而不是明文密码存储?您是否可以拥有自己的算法并在此过程中单独运行?我是新的和在线文档,虽然详细没有具体说明这样做的具体方法。这特定于OpenLDAP和用于身份验证的当前方法。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

apache目录工作室可以为您完成此任务

此ldap浏览器检测到用户密码OID,并提供用于散列密码的界面。

suchas: userPassword :: e01ENX1Lc25MZmNBclBBQ0Q2M0NKamxTYll3PT0 =

(它只是有效,因为它是内置的) 阅读Openldap自述文件以获取更多信息: 该目录包含用于密码机制的本机slapd插件 没有得到项目的积极支持。目前这包括 Kerberos,Netscape MTA-MD5和RADIUS密码机制。阿帕奇 还包括APR1 MD5和BSD / Paul Henning Kamp MD5机制。

要使用Kerberos插件,请添加:

moduleload pw-kerberos.so

到你的slapd配置文件。

yada yada yada

答案 2 :(得分:0)

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

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

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