用于控制对对象属性的访问的 ACE
目录服务 (DS) 对象的 DACL) (任意访问控制列表 可以包含访问控制 项 的层次结构 (ACE) ,如下所示:
- 保护对象本身的 ACE
- 保护对象上指定属性集的特定于对象的 ACE
- 保护对象上的指定属性的特定于对象的 ACE
在此层次结构中,在较高级别授予或拒绝的权限也适用于较低级别。 例如,如果属性集上特定于对象的 ACE 允许受托人ADS_RIGHT_DS_READ_PROP权限,则受托人对该属性集的所有属性具有隐式读取访问权限。 同样,对象本身上允许ADS_RIGHT_DS_READ_PROP访问的 ACE 为受托人提供对对象所有属性的读取访问权限。
下图显示了假设 DS 对象的树及其属性集和属性。
假设要允许对此 DS 对象的属性进行以下访问:
- 允许组 A 对对象的所有属性具有读/写权限
- 允许其他人对属性 D 以外的所有属性拥有读/写权限
为此,请在对象的 DACL 中设置 ACE,如下表所示。
托管方 | 对象 GUID | ACE 类型 | 自动删除 |
---|---|---|---|
组 A | 无 | 允许访问的 ACE | ADS_RIGHT_DS_READ_PROP |ADS_RIGHT_DS_WRITE_PROP |
所有人 | 属性集 1 | 允许访问的对象 ACE | ADS_RIGHT_DS_READ_PROP |ADS_RIGHT_DS_WRITE_PROP |
所有人 | 属性 C | 允许访问的对象 ACE | ADS_RIGHT_DS_READ_PROP |ADS_RIGHT_DS_WRITE_PROP |
组 A 的 ACE 没有对象 GUID,这意味着它允许访问对象的所有属性。 属性集 1 的特定于对象的 ACE 允许每个人访问属性 A 和 B。另一个特定于对象的 ACE 允许每个人访问属性 C。请注意,尽管此 DACL 没有任何拒绝访问的 ACE,但它隐式拒绝对除组 A 以外的所有人进行属性 D 访问。
当用户尝试访问对象的 属性时,系统会按顺序检查 ACE,直到显式授予、拒绝请求的访问权限或不再有 ACE,在这种情况下,访问被隐式拒绝。
系统评估:
- 应用于对象本身的 ACE
- 应用于包含所访问属性的属性集的特定于对象的 ACE
- 应用于所访问属性的特定于对象的 ACE
系统会忽略应用于其他属性集或属性的特定于对象的 ACE。