更改AD LDAP密码所需的权限

您需要更改其他人的LDAP密码的最低权限是什么? 我正在开发一个允许用户更改密码的工具。 由于该工具需要用PHP编写,唯一的问题是您不能使用用户帐户来更改密码。 要解决这个问题,我们希望使用只能更改所有其他用户的密码的pipe理员/pipe理员帐户。

现在的问题。 我们无法find正确的权限设置,以便帐户被允许更改密码。 它为我们工作的唯一方法是,如果我们让他的域pipe理,这是我们不想要的东西。 那么有人需要用PHP更改其他人的密码的最低权限是多less?

编辑:改变标题,以更好地适应问题。

Apache有一个suexec模块,它允许线程作为单独的用户产生,但我不认为这是最简单的解决scheme。

相反,为什么不以用户身份login到ldap服务器,同时使用用户的密码和用户的新密码。 你应该可以使用ldappasswd(或者PHP等价物)来做到这一点。

ldappasswd的手册页和谷歌search“php ldappasswd”应该可以find你正在寻找的所有东西。

编辑:LDAP服务器只有一个pipe理用户AFAIK,root_dn,它可以修改所有内容,包括其他用户的密码。 我想你没有root_dn的login细节,除非你自己pipe理ldap服务器。

要更改包含密码的属性,打算发出修改请求的连接必须具有具有足够访问权限的授权标识才能更改密码,或使用代理身份validation机制 ,在这种情况下访问权限仍然足够。

这里有关于unicodePwd属性约束的一些很好的信息。 有两种方法可以改变属性; 一个更改操作(需要delete旧密码,然后在同一个修改操作中add新密码)和一个重置操作(使用replace操作,并且要求绑定的用户拥有正确的权限)。

PHP LDAP模块在一个事务中不能执行多个操作是有点可怕的。 所以,你坚持做一个重置操作; 请记住,暴露通过此方法实现的密码更改界面将允许用户绕过实际更改其密码的要求(可将其重置为同一个密码)以及不使用以前使用的密码(历史logging执行不检查)。


您的pipe理帐户对用户帐户执行重置操作所需的权限是“重置密码”权限:

RESETPWD