应用程序目录分区的安全和访问控制模型与 Active Directory 域服务中的其他分区相同。 普通用户可以访问受这些对象上放置的 ACL 约束的应用程序目录分区中的对象。 有关详细信息,请参阅 控制对 Active Directory 域服务中对象的访问。
但是,由于应用程序目录分区可以跨越目录服务中的多个安全域,因此在应用程序目录分区中创建对象时,如何解释 defaultSecurityDescriptor 对象架构类中相对于域的已知 SID 字符串常量的问题。 例如,如果“DA”是指域管理员组,但在应用程序目录分区中,则不知道“DA”组引用的域。
若要解决此问题,应用程序目录分区的 crossRef 对象具有 msDS-SDReferenceDomain 属性,该属性包含该应用程序目录分区的引用域的可分辨名称。 安全系统使用指定的域来解释附加到该应用程序目录分区中创建的对象的默认安全描述符的本地域引用。 创建应用程序目录分区的 crossRef 对象时,可以指定引用域。 但是,这需要为应用程序目录分区预创建 crossRef 对象。 如果未指定引用域,系统会根据下列条件之一自动设置引用域:
- 如果应用程序目录分区对象的父对象是另一个应用程序目录分区,则 msDS-SDReferenceDomain 父应用程序目录分区的属性用于引用域。
- 如果父对象是域,则该域将用于引用域。
- 如果没有父对象,则林根域将用于引用域。
创建分区后,crossRef 属性也可以更改为引用域,但不建议这样做。
如果在应用程序目录分区中的对象的 ACL 中指定了本地组,则会出现类似的问题。 在这种情况下,msDS-SDReferenceDomain 属性不能用于解释本地组的引用域。 为了避免此问题,不应在应用程序目录分区对象的 ACL 中使用本地组。