我需要有关LDAP搜索过滤器的信息来提取嵌套的组成员资格。基本上,我的想法是说,例如,用户属于5组[A,B,C,D,E] 我可以编写单个LDAP搜索查询来获取[A,B,C,D,E]组可能属于哪些成员组吗?我可以递归地使用此logc来检索所有组信息,直到AD的完整根?
我需要此解决方案适用于通用AD,因此我无法使用仅适用于MS AD的LDAP_RULE_IN_CHAIN过滤器。
答案 0 :(得分:4)
组不是LDAP标准中定义的内容。就LDAP而言,组条目只是LDAP条目 - 仅此而已。组支持的实现,包括如何处理,查询,验证等嵌套和动态组等数据结构,完全取决于目录软件供应商。例如,IBM的安全目录服务器(SDS)软件通过其自己的专有对象类和属性支持嵌套和动态组,这些对象和属性由软件特别识别,并遍历(对于嵌套组)和扩展(对于动态组)以验证成员身份或为LDAP客户端自动完成获取组结构。例如,SDS提供了诸如ibm-allgroups
和ibm-allmembers
之类的操作属性,以帮助LDAP客户端在单次搜索中提取嵌套和动态组中的组和成员资格信息。其他目录供应商以不同方式解决相同问题因此,您的解决方案将根据您使用的LDAP软件而有所不同。您可以将应用程序设计为支持多个目录服务器软件,但这取决于您希望在应用程序中获得组支持的复杂程度。
答案 1 :(得分:1)
用户所有群组都包含嵌套群组
例如,要找到“CN = John Smith,DC = MyDomain,DC = NET”的所有组成员,将基数设置为groups容器DN;例如(OU = groupsOU,DC = MyDomain,DC = NET)和子树的范围,并使用以下过滤器。
(成员:1.2.840.113556.1.4.1941:=(CN = John Smith,DC = MyDomain,DC = NET))
CN = John Smith,DC = MyDomain,DC = NET是用户的FDN和可扩展匹配规则1.2.840.113556.1.4.1941。
-Jim