0

我已经在 windows xp 上安装了 openldap 版本 2.4.23 并使用 apache DS 作为客户端。我可以在我为测试设置的客户端服务器上验证用户。

我的下一步是打开密码策略。这是事情对我来说有点模糊的地方,我希望有人可以帮助我。

我还使用以下命令添加了密码策略

ldapadd -x -c -f -D "cn=Manager,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。

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

4

3 回答 3

1

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

于 2013-03-06T11:29:44.810 回答
0

rootdn 绕过密码策略,所以不要在 ldappasswd 命令中使用 rootdn。

https://www.openldap.org/lists/openldap-technical/201102/msg00262.html

如果使用 ldappasswd 设置密码并与 rootdn 绑定,则基本上可以输入任何密码(不是空的)。这是一个有点棘手的情况,因为您也无法使用“passwd”命令为用户更改密码。在这种情况下,密码策略将生效。

如果您知道 rootdn 密码,则可以绕过所有内容。

于 2018-04-05T08:11:50.227 回答
0

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

pwdCheck质量

如果值为 1 并且提供的密码是明文形式,则用户提供的函数(使用 pwdCheckModule 定义 - 如果已定义 - 将被调用以检查密码质量。如果此函数不可用,则密码将被接受(假设它通过各种 pwdPolicy 属性定义的所有其他测试)。

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

于 2018-01-06T05:16:29.643 回答