2012-12-07 119 views
2

我需要有关LDAP搜索筛选器提取嵌套组成员资格的信息。基本上,我的想法是说,例如,一个用户属于5个组[A,B,C,D,E] 我可以编写一个LDAP搜索查询来获取成员组到哪个组[A,B,C ,D,E]可能是?我可以递归地使用这个logc来检索所有的组信息,直到AD的完整根目录为止?嵌套组LDAP搜索筛选器

而我需要此解决方案为通用AD,因此我不能使用仅适用于MS AD的LDAP_RULE_IN_CHAIN过滤器。

+0

我可以想到很少的情况下,这不会链回到整个目录。搜索用户,获取组,获取所有用户,获得更多组,获得更多用户,获得更多组。最终击中管理员并获得所有用户。你打算限制这种递归吗? – 2012-12-07 07:28:01

+0

基本上,我对获取用户不感兴趣。我有兴趣提取用户所属的嵌套组信息。因此,如果用户X是组[A,B,C]的一部分,并且组A是D的组D和D的组D的一部分。因此,所有感兴趣的对象都是提取用户组[A,B,C,D ,E]。 –

+0

嗨,如果我打算限制这种递归,即如果我现在需要根据说嵌套的水平深度只限制某些用户集。也就是说,现在我想提取用户的所有用户组,直到指定的嵌套深度,例如'3'或'4'。有没有一种方法可以使用LDAP_RULE_IN_CHAIN做到这一点?它目前正在获取太多的用户组,并影响框的性能 –

回答

1

所有组的用户是包括嵌套的组

作为一个例子,要查找所有的基团“CN =约翰·史密斯,DC = MYDOMAIN,DC = NET”是其成员的成员,设置基地到组容器DN;例如(OU = groupsOU,DC = MyDomain,DC = NET)并将范围映射到子树,并使用以下过滤器。

(构件:1.2.840.113556.1.4.1941:=(CN =约翰·史密斯,DC = MYDOMAIN,DC = NET))

凡CN =约翰·史密斯,DC = MYDOMAIN,DC = NET是用户的FDN和可扩展匹配规则1.2.840.113556.1.4.1941。

-jim

+1

嗨吉姆,我不能使用这个,因为你提到的过滤器似乎只适用于MS AD,而不适用于通用的AD服务器。我的实现需要为通用LDAP服务器完成 –

+0

是的,它只适用于Microsoft AD服务器。这是从可扩展匹配规则完成的,该规则需要在服务器上可用。微软已经实施了匹配规则。其他LDAP服务器实现也可以这样做。我在这里展示了一些细节。 http://ldapwiki.willeke.com/wiki/1.2.840.113556.1.4.1941 – jwilleke

3

组在LDAP标准中没有定义。就LDAP而言,组条目只是LDAP条目。而已。组织支持的实施包括如何处理,查询,验证等数据结构如嵌套和动态组,完全取决于目录软件供应商。例如,IBM的Tivoli Directory Server(TDS)软件通过自己的专有对象类和属性(它们被软件特别识别),遍历(用于嵌套组)和扩展(用于动态组)来支持嵌套组和动态组,以验证成员资格或获取组结构会自动为LDAP客户端完成。例如,TDS提供诸如“ibm-allgroups”和“ibm-allmembers”的操作属性,以帮助LDAP客户端在单个搜索中嵌套和动态组中提取组和成员信息。其他目录供应商以不同方式解决相同问题因此,您的解决方案取决于您使用的LDAP软件。您可以将应用程序设计为支持多种目录服务器软件,但这取决于您希望在应用程序中使用群组支持获得多么复杂。