大家好,
我在获取一个组内的所有用户时遇到问题。我有组名,我的任务是获取所有用户的列表。我没有在 OpenLDAP 服务器中启用memberOf属性。到目前为止,我能够让该组使用:
"(&(objectClass=groupOfNames)(cn=" + groupName + "))";
当我得到这个时,我使用了找到的组的属性成员,例如“cn=ldapuser1,ou=Users,dc=example,dc=com”
然后,我做了另一个查询来获取所有具有给定名称的用户(在上面的示例中,名称将是 ldapuser1)。我使用这个查询:
"(&(objectClass=inetOrgPerson)(|" + builder + "))"; // it can contain several names
问题是如果我的主要组包含另一个组......我的第二个查询将不起作用。
所以现在可行的是:(但不是那么简单和容易)获取一个组的用户(需要对服务器进行 2 次调用 - 首先获取组,然后根据成员属性我进行第二次查询,要求特定用户)
不起作用的是,例如,如果一个组包含一个用户,而一个组例如包含 2 个用户,那么在我当前的解决方案的最终结果中,我只有一个用户。我想要的是在这个例子中拥有三个用户。
我已经在使用 Active Directory 用户搜索,它非常简单 - 我只使用 memberOf 和“1.2.840.113556.1.4.1941”过滤器来过滤嵌套组及其用户。为什么 OpenLDAP 不能这么简单?
所以我的最后一个问题是实现这一点的最佳方法是什么,如何构建这种查询?
真的很想听听大家的建议
任何帮助,将不胜感激!
非常感谢,
干杯