我在windows xp上安装了openldap版本2.4.23并使用apache DS作为客户端。我可以在我设置用于测试的客户端服务器上验证用户身份。
我的下一步是打开密码策略。这对我来说有些朦胧,我希望有人可以帮助我。
我还使用followin命令
添加了密码策略ldapadd -x -c -f -D“cn = Manager,dc = maxcrc,dc = com”-w secret
但在添加密码策略后,我如何使它们生效。
openldap文档说密码策略模块应配置默认策略的DN。
我在slapd.conf文件中添加了以下行
# invokes password policies for this DIT only
overlay ppolicy
# Default ppolicy
ppolicy_default "cn=passwordDefault,ou=policies,dc=maxcrc,dc=com"
但不知何故它没有加载,我已经花了更多的时间在这上面,但我没有得到相同的正确指南。
任何人都可以用简单的外行人的话来阐明这一点吗?
提前致谢。
我的ldif文件如下。
dn: cn=passwordDefault,ou=policies,dc=localdomain,dc=com
objectClass: pwdPolicy
objectClass: person
objectClass: top
cn: passwordDefault
sn: passwordDefault
pwdAttribute: userPassword
pwdCheckQuality: 1
pwdMinAge: 1
pwdMaxAge: 90
pwdMinLength: 6
pwdInHistory: 4
pwdMaxFailure: 3
pwdFailureCountInterval: 0
pwdLockout: TRUE
pwdLockoutDuration: 0
pwdAllowUserChange: TRUE
pwdExpireWarning: 604800
pwdGraceAuthNLimit: 3
pwdMustChange: TRUE
pwdSafeModify: TRUE
添加此策略并重新启动服务器后,我尝试更改现有用户和新添加用户的密码。 服务器允许我将密码更改为长度小于6的字符串 而我在ldif中提到了pwdMinLength:6。
以及我尝试多次更改密码,但它允许我将密码更改为最近使用的密码,而ldif中的pwdInHistory:4。
答案 0 :(得分:1)
如果使用rootDN执行更新,则密码策略不起作用。您必须使用现有的管理员帐户或用户自己的帐户。
答案 1 :(得分:0)
目前尚不清楚在测试时如何设置密码,但我会检查您是否以正确的格式传递密码,这意味着服务器需要以明文形式接收密码。某些客户端会在将值发送到OpenLDAP服务器之前对该值进行散列,在这种情况下,OpenLDAP服务器无法确定密码的长度。通信可以并且应该加密,但不应预先进行预处理。哈希可以由服务器处理:
<强> pwdCheckQuality 强>
如果值为1且提供的密码为明文,则用户提供的功能(使用pwdCheckModule定义 - 如果已定义 - 将被调用以检查密码质量。如果此功能不可用,则接受密码(假设它通过了各种pwdPolicy属性定义的所有其他测试)。
答案 2 :(得分:0)
rootdn bypass密码策略,所以不要在你的root中使用rootdn ldappasswd命令。
https://www.openldap.org/lists/openldap-technical/201102/msg00262.html
如果使用ldappasswd设置密码并使用rootdn绑定,基本上可以输入任何密码(不是空的)。 这是一个有点棘手的情况,因为您无法使用&#34; passwd&#34;更改密码。为用户命令。在这种情况下,密码策略将启动。
如果您知道rootdn密码,则可以绕过所有内容。