OU 移动后,Active Directory LDAP_MATCHING_RULE_IN_CHAIN 不返回任何记录

OU 移动后,Active Directory LDAP_MATCHING_RULE_IN_CHAIN 不返回任何记录

我们发现 Active Directory LDAP 查询存在一个奇怪的问题。

情况是:我们在给定的 OU 中有一个安全组。该安全组需要移动到一个完全不同的欧亚。

我们有一个使用 LDAP 针对 AD 进行身份验证的应用程序,它使用 Active Directory 进行查询LDAP_MATCHING_RULE_IN_CHAIN,以便它支持嵌入式组:

(memberOf:1.2.840.113556.1.4.1941:=CN=SystemAdministrators,OU=SA Users,OU=System Administrators,OU=Departments,DC=ds,DC=example,DC=com)

示例查询如下:

ldapsearch -LLL -x -W -H 'ldap://ny-dc02.ds.example.com:389' -D '[binding account details]' -b 'OU=Departments,DC=ds,DC=example,DC=com' '(memberOf:1.2.840.113556.1.4.1941:=CN=SystemAdministrators,OU=SA Users,OU=System Administrators,OU=Departments,DC=ds,DC=example,DC=com)' dn

它返回属于所请求的 OU 的完整用户列表 - 正如预期的那样。

但是,如果我们将该组移出Departments\System Administrators并移入Security Groups\System Administration(并适当地更新查询):

(memberOf:1.2.840.113556.1.4.1941:=CN=SystemAdministrators,OU=System Administration,OU=Security Groups,DC=ds,DC=example,DC=com)

例如:

ldapsearch -LLL -x -W -H 'ldap://ny-dc02.ds.example.com:389' -D '[binding account details]' -b 'OU=Security Groups,DC=ds,DC=example,DC=com' '(memberOf:1.2.840.113556.1.4.1941:=CN=SystemAdministrators,OU=System Administration,OU=Security Groups,DC=ds,DC=example,DC=com)' dn

我们没有从 LDAP 搜索中返回任何结果。

我们的第一个想法是“哦,它可能正在缓存某些东西”。但是我们将安全组留在其新的 OU 中几个小时,我们仍然看到了相同的结果。

以前有人见过类似的事情吗?关于下一步该如何排除故障,您有什么建议吗?

答案1

搜索基础应该设置为用户所在的位置,而不是组所在的位置(组的位置已包含在选项中)。因此,无论组在哪里,您的搜索基础都应该保持不变(如果用户没有移动)。

答案2

权限如何?应用程序是否有权在新 OU 中进行搜索?我会查看新旧 OU 上的有效权限。

另外,我要确认新位置实际上是一个 OU。可以在 AD 中创建“容器”对象,就像“用户”容器不是 OU 一样。因此,DN 将从:CN=SystemAdministrators,OU=System Administration,OU=Security Groups,DC=ds,DC=example,DC=com 更改为:CN=SystemAdministrators,CN=系统管理,OU=安全组,DC=ds,DC=example,DC=com

相关内容