2016-06-10 188 views
0

由于我的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密码输入正确吗?

事情我已经尝试添加一个新的密码:

  1. 完全相同添加相同的密码哈希上面的userPassword 作为显示 - >约束违规错误
  2. 试图查找密码算法NAS'源代码。这揭示了以下行:rootpw {CRYPT}$1$CL$0fRYicA9KsmHaiV1SRj5q/。 简单地使用这个作为新密码也不起作用。
  3. 查找不同的PHP函数,就像等同于Linux命令ldappasswd一样,但这似乎并不适用于PHP。

当然,我更喜欢使用像SSHA-512这样的合适的哈希/加密机制,但我不确定Directory Server不支持什么和什么。

我真的很希望有人能让我更进一步!如果我要进一步澄清事情,请让我知道。

回答

0

最终,解决方案是一直向Synology提问,寻求解决方案。他们在更新到v2.1-2428之前将密码策略更改回版本,现在它再次运行。

如果还有其他可用的解决方案与最新版本的OpenLDAP兼容,将不胜感激。

0

尝试更改密码时的约束违规看起来像是实施Directory Server密码策略。 目录服务器日志应包含有关该错误的更多详细信息,但可能已将该策略设置为拒绝已使用的密码(如最后3个密码)。目录服务器密码策略可能对密码实施许多检查和限制:长度,不重复使用,字符集变化,无明文字符... 您可能需要检查Synology目录服务器文档或发行说明以了解详细信息默认的密码策略。

+0

感谢您的回复。在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

+0

嗯,看看Synology DSM 6.0的说明,密码强度规则已经为用户添加并启用。 https://www.synology.com/en-global/knowledgebase/DSM/help/DirectoryServer/ldap_user。 我没有在我的NAS上启用此功能,并且我也不使用OpenLDAP ......但似乎DSM上有一个选项可用于在登录失败时获得更好的诊断。你可能想尝试一下。 –

+0

是的,但正如我所说我没有任何规则被激活,所以除了Synology在引擎盖下改变了某些东西的可能性之外,这不会导致我可以改变以使其起作用,您是否认为?您的意思是选项“登录失败时显示更多信息”?这意味着您在DSM上登录时会收到错误消息。这不是我说的问题:我想添加userPassword属性,并在PHP中得到约束违规错误。 – SJDS