引荐 (AD DS)
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”的引荐。 请注意,在引荐指定的地址(crossRef 对象的属性之一)上必须有一个 LDAP 服务器,而且该 LDAP 服务器必须为“ChildOfSomeObject”所标识的名称空间提供服务。
由于 crossRef 对象存储在配置容器中,因此每个域控制器 (DC) 都有一份所有 crossRef 对象的副本。 因此,每个 DC 都包含林中每个域的数据以及它们的上级/下级关系。 这样,每个 DC 都能生成指向林中任何域的引荐,以及子树搜索中未探索的下级域、架构或配置容器的引用。
有关引荐的详细信息,请参阅:
有关详细信息以及如何获取分区容器区的可分辨名称的代码示例,请参阅定位分区容器的代码示例。