自我的LDAP服务器最近更新(使用运行DSM 6的Synology NAS上的Directory Server v2.1-2428,最新的颠覆)后,我无法使用PHP更改密码(或包含密码的新用户)。
在更新之前,我使用了带有userPassword属性的PHP ldap_add或ldap_mod。但是,现在我在尝试创建新的userPassword时收到错误消息Warning: ldap_add(): Add: Constraint violation
。
当通过NAS上的管理GUI创建新用户时,我可以查找userPassword条目,该条目在数据库中显示如下(稍微修改了隐私):{crypt}$6$e49q9SvU$.pSl1C8Ew6WTu24yipUI8kjx7qv2GxWhKAUOBmuAVeRmJ1JV/WvWriVYZJeDDtBxekeepatdaKl0ulQdjsmCP.
这意味着数据库接受SSHA-512密码条目吗?
我尝试添加新密码:
rootpw {CRYPT}$1$CL$0fRYicA9KsmHaiV1SRj5q/
。
简单地使用它作为新密码也不起作用。当然我更喜欢使用SSHA-512之类的正确哈希/加密机制,但我不确定Directory Server的内容和内容是什么。
我真的希望有人能让我更进一步!如果我要进一步澄清事情,请告诉我。
答案 0 :(得分:0)
尝试更改密码时的Constraint Violation似乎是Directory Server密码策略实施。 Directory Server日志应包含有关错误的更多详细信息,但可能已将策略设置为拒绝已使用的密码(如最后3个密码)。 Directory Server密码策略可以对密码强制执行许多检查和约束:长度,不重用,字符集的变化,没有简单的单词...... 您可能需要查看Synology目录服务器文档或发行说明,以获取默认密码策略的详细信息。
答案 1 :(得分:0)
最后,解决方案是让Synology一遍又一遍地帮助寻找解决方案。他们在更新到v2.1-2428之前将密码策略更改回版本,现在再次运行。
如果有其他可用解决方案与最新版本的OpenLDAP兼容,我们将非常感谢分享。