Active directory 搜索筛选器中具有通配符模式的嵌套组的Active Directory搜索查询

Active directory 搜索筛选器中具有通配符模式的嵌套组的Active Directory搜索查询,active-directory,nested-groups,Active Directory,Nested Groups,我正在尝试允许Active Directory中嵌套组的用户登录到我的基于spring boot/security的应用程序。我已经找到了如何通过spring安全配置提供搜索查询的方法,但是搜索查询本身有问题 以下是当前按预期工作的搜索查询: (&(objectCategory=Person)(userPrincipalName=user1@domain.local) (memberOf:1.2.840.113556.1.4.1941:=CN=parent_group1,OU=Ano

我正在尝试允许Active Directory中嵌套组的用户登录到我的基于spring boot/security的应用程序。我已经找到了如何通过spring安全配置提供搜索查询的方法,但是搜索查询本身有问题

以下是当前按预期工作的搜索查询:

(&(objectCategory=Person)(userPrincipalName=user1@domain.local)
  (memberOf:1.2.840.113556.1.4.1941:=CN=parent_group1,OU=Another Group,OU=Groups,OU=Company,DC=Company-Domain,DC=local))
由于user1属于父组\u group1或其子组之一,因此此功能正常工作。但我有不止一个带有固定前缀的父组。因此,我试图在该查询中提供通配符作为
CN=parent\u group*
,但它不起作用

我已经看到了一种变体,其中每个父组可以添加一个或类似的:

(&(objectCategory=Person)(userPrincipalName=user1@domain.local)
   (|(memberOf:1.2.840.113556.1.4.1941:=CN=parent_group1,OU=Another Group,OU=Groups,OU=Company,DC=Company-Domain,DC=local)
     (memberOf:1.2.840.113556.1.4.1941:=CN=parent_group2,OU=Another Group,OU=Groups,OU=Company,DC=Company-Domain,DC=local)
     (memberOf:1.2.840.113556.1.4.1941:=CN=parent_group3,OU=Another Group,OU=Groups,OU=Company,DC=Company-Domain,DC=local)
这也行得通。但问题是,每次添加新的父组时,都需要更新。我已经通过了上述问题答案中指定的链接,但没有任何效果

理想情况下,我希望这样的方法能奏效(parent_group的通配符模式):

但它不起作用。它不会返回任何结果。如果有更好的方法,有人能帮我吗

还有,有没有可能不提及这样的整个层次结构?
CN=parent\u group*,OU=other group,OU=Groups,OU=Company,DC=Company Domain,DC=local


我已经对此进行了几天的研究,浏览了网上提供的大部分文章,但到目前为止,链式命令的通配符模式还不起作用。

不可能做到您所描述的。如果您有一个父组,而您的所有“其他”父组都嵌套在其中,您会得到很好的服务。每当创建新的父组时,您都会将其嵌套在主组中,以便授予其访问权限。这是一个非常常见的模型

谢谢你的回复。现在,我在parent_group1下添加了一个子_组,并在子_组中添加了一个新用户。上面的搜索查询仍然获取添加到sub_组的用户,但由于CN值中不包含父_组1,因此我使用的库无法正确授权该用户。您知道如何将CN值设置为
CN=sub\u group,CN=parent\u group1,OU=other group,OU=Groups,OU=Company,DC=Company Domain,DC=local
而不是
CN=sub\u group,OU=other group,OU=Groups,OU=Company,DC=Company Domain,DC=local
?是否仍要拉取用户所属层次结构中的所有组?这将拉取用户所属的所有组(&(objectCategory=group)(成员:1.2.840.113556.1.4.1941:=CN=User1,CN=Users,DC=Company Domain,DC=local))。但是,没有办法让AD以某种方式转换输出以匹配您想要的内容。非常感谢,我最终使用了上述命令,因为我必须扩展库的功能以支持嵌套组。
(&(objectCategory=Person)(userPrincipalName=user1@domain.local)
  (memberOf:1.2.840.113556.1.4.1941:=CN=parent_group*,OU=Another Group,OU=Groups,OU=Company,DC=Company-Domain,DC=local))