Active Directory 域服务在配置容器中存储的 crossRef 对象(crossRefContainer)中维护引用数据。 在 确定搜索位置 主题中,将在域树中的域上下文中讨论引荐,并在子树搜索上生成从属域的引荐。
Active Directory 域服务为林中的所有域创建和维护 crossRef 对象。 此外,配置和架构容器还有 crossRef 对象。 这些 crossRef 对象用于生成引用,以响应请求有关林中存在的对象的数据的查询,但不包含在处理请求的目录服务器上。 这些引用称为 内部交叉引用,因为它们引用林中的域、架构和配置容器。
如果未启用引荐追查并执行子树搜索,则搜索将返回满足搜索条件的指定域中的所有对象。 搜索还会将引荐返回到目录服务器域的直接后代的任何从属域。 客户端必须通过绑定到引荐指定的路径并提交另一个查询来解析引荐。
如果启用引荐追查并执行子树搜索,基础 LDAP API 将自动尝试绑定到任何引荐并将搜索结果添加到结果集。 在大多数情况下,引荐追逐对调用方是透明的。 如果引荐指向其他域或林中的对象,基础 LDAP API 将尝试使用当前凭据绑定到引荐的目标。 如果成功,引荐追逐将是透明的。 如果未成功,将返回引荐和引荐错误代码。
有关设置引荐追逐搜索首选项的详细信息,请参阅 指定其他搜索选项。
除了 dnsRoot(域的 DNS 名称)和 nCName(域的可分辨名称)属性, crossRef 对象还包含 nETBIOSName(域的 NetBIOS 名称)和 trustParent(表示域直接父域的 crossRef 对象的可分辨名称)。
Active Directory 域服务还可以 引用林外部对象的 外部交叉引用。 管理员必须显式添加外部交叉引用。 请注意,外部交叉引用的目标服务器必须具有 DNS 根;也就是说,它必须遵循 RFC 2247。
外部交叉引用是指任何其他林上的对象,只要名称在目标林中是唯一的。 例如,公司使用的 LDAP 客户端应用程序可以将作提交到目录服务器以进行 Fabrikam.com。 为 Fabrikam.com 创建 crossRef 对象。 现在,目录服务器可以向 Fabrikam.com 域中的对象返回引用,并且客户端可以追逐引荐,而不是返回“找不到对象”错误。 例如,如果你有具有以下可分辨名称的对象:
CN=SomeObject,OU=SomeOU,DC=Fabrikam,DC=Com
可以为名为“ChildOfSomeObject”的对象添加外部交叉引用。
CN=ChildOfSomeObject,CN=SomeObject,OU=SomeOU,DC=Fabrikam,DC=Com
包含“SomeObject”的子树搜索还会返回对“ChildOfSomeObject”的引用。 请注意,在引用指定的地址中必须存在 LDAP 服务器(crossRef 对象的属性之一),并且此 LDAP 服务器必须提供由“ChildOfSomeObject”标识的命名空间。
由于 crossRef 对象存储在配置容器中,因此每个域控制器(DC)都有一个跨引用 对象的所有 副本。 因此,每个 DC 都包含林中每个域及其上级/从属关系的相关数据。 这样,每个 DC 都可以在子树搜索中为未探索的从属域、架构或配置容器生成对林中的任何域的引用。
有关引荐的详细信息,请参阅:
- 生成引荐时
- 创建外部引荐
有关详细信息和演示如何获取分区容器的可分辨名称的代码示例,请参阅 用于查找分区容器的示例代码。