我正在尝试允许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>
答案 0 :(得分:0)
无法做您描述的事情。如果将一个父组嵌套在所有“其他”父组中,将为您提供很好的服务。每当创建一个新的父组时,您都将其嵌套在主组中,以便授予访问权限。这是一个很普通的模型。