使用phpldap更改ldap密码时请记住已分配的策略

时间:2015-07-20 15:01:09

标签: php ldap password-policy

我正在尝试编写一个闪亮的php服务,允许用户更改其密码。 我来使用ldap_modify函数。一切正常,我传递了dn和新的用户密码(或其哈希),用户可以在以后成功登录。

问题是该用户分配了密码策略,禁止密码长度< 2.将此密码(或散列)传递给ldap_modify后,我没有错误,异常等等。

为什么不根据分配的密码策略检查密码?

作为临时解决方案,我可以手动阅读政策录入和检查长度......

2 个答案:

答案 0 :(得分:0)

有一个名为ldappasswd的命令行工具(在某些名为slappasswd IIRC的linux-distros上)应该用于生成密码哈希。此工具IIRC根据为给定用户设置的密码策略验证输入的密码。

当您手动更改密码值时,LDAP-Server无法检查它,因为它是与所有其他属性一样的属性,因此您可以在不干扰服务器的情况下对其进行更改。当您将哈希设置为值时,LDAP-Server无法知道密码是否与密码策略的指令匹配,因为它实际上从未实际看到密码处于未散列状态。因此,在哈希密码之前,您必须自己检查政策

答案 1 :(得分:0)

解决方案:所以问题是我正在测试的策略将属性pwdCheckQuality设置为0,这禁用了所有检查...第二个问题是LDAP中的管理员用户忽略了密码策略 - 我不得不做所有的测试简单用户