应用程序目录分区安全性

应用程序目录分区的安全与访问控制模型与针对 Active Directory 域服务中其他分区的模型相同。 普通用户可访问受对象上所放置 ACL 约束的应用程序目录分区中的对象。 有关详细信息,请参阅控制对 Active Directory 域服务中对象的访问

但是,由于应用程序目录分区可跨越目录服务中的多个安全域,因此在应用程序目录分区中创建对象时,便会出现如何在对象架构类的 defaultSecurityDescriptor 中解释相对于域的已知 SID 字符串常量的问题。 例如,如果“DA”是指域管理员组,但在应用程序目录分区中,却不知道“DA”组是指哪个域。

若要解决此问题,应用程序目录分区的 crossRef 对象具有一个 msDS-SDReferenceDomain 属性,而该属性包含该应用程序目录分区的引用域的可分辨名称。 安全系统使用指定的域来解释附加到该应用程序目录分区中所创建对象的默认安全描述符的本地域引用。 创建应用程序目录分区的 crossRef 对象时,可指定引用域。 但是,这要求为此应用程序目录分区预先创建 crossRef 对象。 如果未指定引用域,系统则会根据下列条件之一自动设置引用域:

  • 如果应用程序目录分区对象的父项是另一应用程序目录分区,则父应用程序目录分区的 msDS-SDReferenceDomain 属性将用于引用域。
  • 如果父对象为域,则该域会用于引用域。
  • 如果没有父对象,则林根域将用于引用域。

创建分区后,还可以将 crossRef 属性更改为引用域,但不建议这样做。

如果在应用程序目录分区中某一对象的 ACL 中指定了本地组,则会出现类似问题。 在此情况下,msDS-SDReferenceDomain 属性无法用于解释本地组的引用域。 为避免出现此问题,不应在应用程序目录分区对象的 ACL 中使用本地组。