2013-03-04 134 views
0

我已经在Windows XP上安装了openldap版本2.4.23,并使用apache DS作为客户端。我可以在设置用于测试的客户端服务器上对用户进行身份验证。OpanLdap密码政策

我的下一步是打开密码策略。这是对我来说有点朦胧的地方,我希望有人能帮助我。

我加了一个密码策略也通过跟随着命令

ldapadd的-x -c -f -D “CN =经理,DC = maxcrc,DC = COM” -w秘密

但经过如何添加密码策略使其生效

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。

以及我尝试更改密码不止一次,但它允许我将密码更改为最近使用的密码,而pwdInHistory:4在ldif中。

+1

你'ldapadd'命令看起来不正确,'-f'一个文件名(通常是LDIF文件)。 – 2013-03-04 17:29:44

+0

这也有助于向我们展示LDIF文件中的内容,以及您有什么证据表明策略没有生效。 – EJP 2013-03-05 01:09:46

+0

@ mr.spuratic:我只是错过了这里的文件名,完整ldapadd的命令是 ldapadd的-c -f passwordpolicy.ldif -D “CN =经理,DC = maxcrc,DC = COM” -x -w秘密 – 2013-03-05 07:12:05

回答

1

如果使用rootDN执行更新,则密码策略不起作用。您必须使用现有的管理员帐户或用户自己的帐户。

+0

我做不明白“改变密码的扩展操作”是什么意思,请您详细说明一下。 谢谢 – 2013-03-06 13:50:35

0

不清楚你在测试时如何设置密码,但我会检查你是否以正确的格式传递密码,这意味着服务器需要以明文方式接收密码。某些客户端在将值发送到OpenLDAP服务器之前会散列该值,在这种情况下,OpenLDAP服务器不可能确定密码的长度。通信可以并且应该被加密,但不应该被预先哈希。散列可以由服务器进行处理:

pwdCheckQuality

如果该值是1,并且所提供的密码是明文然后用户提供的函数(使用pwdCheckModule定义 - 如果定义 - 将被调用,以检查密码质量,如果这个函数不可用,那么密码将被接受(假设它通过了由各种pwdPolicy属性定义的所有其他测试)。

参考:http://www.zytrax.com/books/ldap/ch6/ppolicy.html