我有一个 389 Directory Server 集群作为ldap . 我想使用 phpldapadmin 作为前端 .
一切似乎都很好,但是当我使用非管理员用户登录时,即使用 phpldapadmin 创建了用户,我也看不到自己的密码字段 . 登录有效,但我可以更改密码值 .
相同的phpldapadmin配置适用于 openldap .
有任何想法吗?
谢谢
这是一个可能由默认ACI实现的安全功能 . 默认情况下,除管理用户外,没有人可以读取用户对象的userPassword属性 . 原因很简单:虽然使用像MD5或SSHA之类的东西哈希密码有助于保护它免受攻击,但这种方法并不是完全无法攻击的 . 如果某人掌握了您的哈希,他们可以使用rainbow tables或password cracking rig来查找/破解哈希并获取纯文本密码 . 如果您希望非管理用户有权访问所有用户密码,您可以将以下ACI添加到正确的对象/容器(可能是ou = People):
aci: (targetattr = "userPassword") (version 3.0;acl "Password Reading";allow (read)(userdn = "ldap:///uid=SomeUser,ou=People,dc=example,dc=com");)
我还建议你在phpldapadmin上使用389管理控制台,因为它为特定于389的功能提供了更丰富的界面 .
1 回答
这是一个可能由默认ACI实现的安全功能 . 默认情况下,除管理用户外,没有人可以读取用户对象的userPassword属性 . 原因很简单:虽然使用像MD5或SSHA之类的东西哈希密码有助于保护它免受攻击,但这种方法并不是完全无法攻击的 . 如果某人掌握了您的哈希,他们可以使用rainbow tables或password cracking rig来查找/破解哈希并获取纯文本密码 . 如果您希望非管理用户有权访问所有用户密码,您可以将以下ACI添加到正确的对象/容器(可能是ou = People):
我还建议你在phpldapadmin上使用389管理控制台,因为它为特定于389的功能提供了更丰富的界面 .