在Active Directory中,如何委派对受保护用户帐户的特定属性的写权限?

我们有一个正在开发的工具,它可以保持活动目录用户对象的特定属性与别处的权威信息来源的员工信息真实性保持同步,以便当别人的电话号码或经理或位置发生变化时,Active Directory会自动更新。

对于普通用户来说,操纵这些属性的委托使用委托工具很容易处理,但受保护的用户(应用adminSDHolder ACL)则更加困难。

当使用UI将ACE添加到adminSDHolder ACL时,您只能授予对所有属性(我们不希望出于安全原因)的访问权限或adminSDHolder对象本身上存在的属性 – 而不是用户属性(如department

如何在adminSDHolder的保护下授予访问用户对象的特定属性的权限?

这是可行的,但只能通过命令行工具 – 用户界面无法做出改变(以及弄清楚这些ACE实际上是在什么地方)。

为了授予对特定用户对象属性(例如telephoneNumber访问权限,请使用dsacls

 dsacls "CN=AdminSDHolder,CN=System,DC=example,DC=com" /G Allow-User-Management:RPWP;telephoneNumber; 

这将为该属性创build一个ACE,在adminSDHolder上没有意义,因为它没有telephoneNumber ,而是应用于受保护的用户。

请注意,UI工具将如下所示,您为创buildACE所授予的每个属性都不确定要做什么:

困惑的UI

但是, dsacls "CN=AdminSDHolder,CN=System,DC=example,DC=com"将显示事实:

 Allow Allow-User-Management SPECIAL ACCESS for sn WRITE PROPERTY READ PROPERTY Allow Allow-User-Management SPECIAL ACCESS for telephoneNumber WRITE PROPERTY READ PROPERTY