我们正在开发一个工具,它将使 Active Directory 用户对象的特定属性与其他地方的权威员工信息真实来源保持同步,以便当某人的电话号码、经理或位置发生变化时,Active Directory 会自动更新。
对于普通用户来说,使用委派工具来处理这些属性的操作委派很简单,但对于adminSDHolder
应用了 ACL 的受保护用户来说,这更加困难。
当使用 UI 将 ACE 添加到adminSDHolder
ACL 时,您只能授予对所有属性(出于安全原因我们不希望这样)或对象adminSDHolder
本身存在的属性的访问权限 - 而不是像这样的用户属性department
。
如何授予对受保护的用户对象的特定属性的访问权限adminSDHolder
?
答案1
这是可行的,但只能通过命令行工具来实现 - UI 无法进行更改(并且无法确定这些 ACE 在到位后实际上是什么)。
为了授予对特定用户对象属性的访问权限,例如telephoneNumber
,使用dsacls
:
dsacls "CN=AdminSDHolder,CN=System,DC=example,DC=com" /G Allow-User-Management:RPWP;telephoneNumber;
adminSDHolder
这会为该属性创建一个 ACE,由于它没有,所以它毫无意义telephoneNumber
,但随后会应用于受保护的用户。
请注意,UI 工具将如下所示,其中每个属性都是您为创建不确定如何构成的 ACE 而授予的:
但,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