用于控制对对象属性的访问的 ACE

目录服务 ( (DS) ) 对象的 DACL 自由访问控制列表 可以包含 访问控制条目 层次结构, (ACE) ,如下所示:

  1. 保护对象本身的 ACE
  2. 保护对象上指定属性集的对象特定的 ACE
  3. 保护对象上指定属性的对象特定的 ACE

在此层次结构中,在较高级别授予或拒绝的权限也适用于较低级别。 例如,如果属性集上特定于对象的 ACE 允许受托人ADS_RIGHT_DS_READ_PROP权限,则受托人对该属性集的所有属性具有隐式读取访问权限。 同样,允许ADS_RIGHT_DS_READ_PROP访问的对象本身的 ACE 授予受托人对所有对象属性的读取访问权限。

下图显示了假设 DS 对象的树及其属性集和属性。

directory service object hierarchy

假设你想要允许对此 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。