我编写了一些代码来从 Active Directory 服务器获取用户信息。假设 Active Directory 服务器有节点,每个节点都是位于不同地理位置的另一个 Active Directory 安装。例如:一个 AD 服务器位于美国,另一个位于澳大利亚,而根 AD 服务器位于美国,前两个服务器作为节点。
如果我在根 AD 服务器上运行我编写的用于跨地理位置搜索用户的筛选查询,它们会起作用吗?我使用的查询是
(|(objectClass=user)(objectClass=person)(objectClass=inetOrgPerson))
我实际上无法测试这种情况,但需要知道这里会发生什么。
答案1
在 Active Directory 中,目录没有真正的分区。如果您需要创建一组以不同方式复制的用户子集,则需要一个新的域,并拥有自己的一组域控制器。
因此,这意味着您每个地理区域的域控制器(即所谓的 Active Directory 服务器)可能都拥有所有用户的完整副本。如果没有,那么每个地理区域都是自己的域。
因此,您的查询应该适用于任何 DC(假设它是单个域)。如果不是,则查询将尝试遍历域结构,并且需要网络访问才能对其他 DC 进行 LDAP 查询。
就您而言,您最需要担心的其实是搜索基础,而不是过滤器。也就是说,搜索从哪里开始。如果有地理上独立的域,那么您需要在每个位置的适当容器中进行搜索。