有没有办法定义自己的加密/解密而不是明文密码存储?您是否可以拥有自己的算法并在此过程中单独运行?我是新的和在线文档,虽然详细没有具体说明这样做的具体方法。这特定于OpenLDAP和用于身份验证的当前方法。
答案 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配置文件。
答案 2 :(得分:0)
如果您使用密码进行身份验证,则永远不应将密码存储在可逆加密中!
您应该使用单向散列函数存储密码:MD5,SHA1,SHA256。如果你不是绝对需要以某种旧的,特定的格式存储它,你应该总是加盐。 Salted SHA1是OpenLDAP的良好默认值。
问题是,您需要使用LDAP扩展操作来更改密码,而不是常规的ldapmodify更新,以使其正常工作。最好使用ppolicy
来实际强制设置密码。你可能想要进行密码质量检查和老化。