Active Directory搜索查询,用于在搜索过滤器中使用通配符模式的嵌套组

时间:2018-08-16 14:27:25

标签: active-directory nested-groups

我正在尝试允许Active Directory中嵌套组中的用户登录到我的基于spring boot / security的应用程序。我已经知道了如何通过spring-security配置提供搜索查询,但是搜索查询本身遇到了麻烦。

以下是当前按预期运行的搜索查询:

(&(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属于parent_group1或其子组之一。但是我有多个带有常数前缀的parent_group。因此,我试图在该查询中以CN=parent_group*的形式提供通配符,但无法正常工作。

我看到了一个变体here,其中每个parent_group都可以添加如下所示的OR:

(&(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的通配符模式):

(&(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))

但是它不起作用。它不返回任何结果。如果有更好的方法可以帮助我吗?

此外,是否有可能不提及整个层次结构?  CN=parent_group*,OU=Another Group,OU=Groups,OU=Company,DC=Company-Domain,DC=local

我已经对此进行了几天的研究,并浏览了在线或SO上提供的大多数文章,但到目前为止,使用通配链命令的通配符模式无效。 / p>

1 个答案:

答案 0 :(得分:0)

无法做您描述的事情。如果将一个父组嵌套在所有“其他”父组中,将为您提供很好的服务。每当创建一个新的父组时,您都将其嵌套在主组中,以便授予访问权限。这是一个很普通的模型。