由于我的LDAP服务器中的最新更新(在运行DSM 6的Synology NAS上使用Directory Server v2.1-2428,最新的版本)我无法更改密码(或新用户包含密码)使用PHP。使用PHP更改密码或在LDAP中添加用户
更新之前,我使用了具有userPassword属性的PHP ldap_add或ldap_mod。但是,现在,当尝试创建新的userPassword时,我收到错误消息Warning: ldap_add(): Add: Constraint violation
。
在创建通过NAS的管理GUI一个新的用户,我可以查找的userPassword项,出现在如下数据库(稍加修改隐私):{crypt}$6$e49q9SvU$.pSl1C8Ew6WTu24yipUI8kjx7qv2GxWhKAUOBmuAVeRmJ1JV/WvWriVYZJeDDtBxekeepatdaKl0ulQdjsmCP.
这意味着数据库接受SSHA -512密码输入正确吗?
事情我已经尝试添加一个新的密码:
- 完全相同添加相同的密码哈希上面的userPassword 作为显示 - >约束违规错误
- 试图查找密码算法NAS'源代码。这揭示了以下行:
rootpw {CRYPT}$1$CL$0fRYicA9KsmHaiV1SRj5q/
。 简单地使用这个作为新密码也不起作用。 - 查找不同的PHP函数,就像等同于Linux命令ldappasswd一样,但这似乎并不适用于PHP。
当然,我更喜欢使用像SSHA-512这样的合适的哈希/加密机制,但我不确定Directory Server不支持什么和什么。
我真的很希望有人能让我更进一步!如果我要进一步澄清事情,请让我知道。
感谢您的回复。在Directory Server的高级设置中,有多种选项可以设置密码策略。但是,我没有激活它们,所以对密码选择没有限制。 日志(/var/log/slapd.log)显示: 'Jun 10 21:12:33 IFMSA-NL slapd [29121]:DIGEST-MD5通用机械免费 Jun 10 21:13:05 IFMSA-NL slapd [10237]:[main.c:736] @(#)$ OpenLDAP:slapd 2.4.40(May 25 2016 17:16:08)$ root @ build1:/source/openldap-2.4。x/servers/slapd' 但是,从我尝试添加用户密码的那一刻起就没有日志条目,不知道为什么 – SJDS
嗯,看看Synology DSM 6.0的说明,密码强度规则已经为用户添加并启用。 https://www.synology.com/en-global/knowledgebase/DSM/help/DirectoryServer/ldap_user。 我没有在我的NAS上启用此功能,并且我也不使用OpenLDAP ......但似乎DSM上有一个选项可用于在登录失败时获得更好的诊断。你可能想尝试一下。 –
是的,但正如我所说我没有任何规则被激活,所以除了Synology在引擎盖下改变了某些东西的可能性之外,这不会导致我可以改变以使其起作用,您是否认为?您的意思是选项“登录失败时显示更多信息”?这意味着您在DSM上登录时会收到错误消息。这不是我说的问题:我想添加userPassword属性,并在PHP中得到约束违规错误。 – SJDS