繁体   English   中英

使用PHP更改密码或在LDAP中添加用户

[英]Change password or add user in LDAP with PHP

由于LDAP服务器中的最新更新(在运行DSM 6的Synology NAS上使用Directory Server v2.1-2428,最新版本),因此无法使用PHP更改密码(或包含密码的新用户)。

在更新之前,我将PHP ldap_add或ldap_mod与userPassword属性一起使用。 但是,现在我收到错误消息Warning: ldap_add(): Add: Constraint violation尝试创建新的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支持什么和不支持什么。

我真的希望有人能使我更进一步! 如果我需要进一步澄清问题,请告诉我。

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

最后,解决方案是不停地要求Synology寻求解决方案。 他们在更新到v2.1-2428之前将密码策略改回了版本,现在又可以使用了。

如果将存在与OpenLDAP的最新版本兼容的另一种解决方案,将不胜感激共享。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM