过滤 LDAP 返回的属性

Filtering LDAP returned attributes

所以我们有这个 LDAP 查询(针对 OpenLdap)

(&(objectClass=groupOfNames)(member=cn=admin,dc=test,dc=com))

查询 returns admin 所属的所有组。它还 returns 这些组中的所有其他用户。当您在同一组中有 +10.000 个用户时,这是一个问题。

有没有办法只 return 组名?像 returned 属性过滤器?

在 Java 中有一个类似的选项,但我不知道它是否只是在客户端进行查询和过滤结果,或者如何将其编写为 LDAP 查询。示例:

String returnedAtts[]={"memberOf","name","mail"};
search.setReturningAttributes(returnedAtts);
NamingEnumeration answer = ctx.search(searchBase, "(&(objectClass=user)(sAMAccountName="+username+"))", search);

是的,我知道。使用 memberOf 会是更好的选择。但是这个 LDAP 没有那个属性

如果您使用 setReturningAttributes(list),LDAP 服务器将 return 只有那些。您不必包括搜索过滤器所基于的属性。这是您问题的正确解决方案。

像这样的过滤器 (&(objectClass=groupOfNames)(member=cn=admin,dc=test,dc=com)) 不应 return 组的所有成员。它将 return 用户所属的所有组。

像这样的过滤器 (&(objectClass=groupOfNames)9cn=yourdesiredgroupname)(member=cn=admin,dc=test,dc=com))

请问return只对感兴趣的群体。将 returned 属性设置为 CN 将 return 只有组名。

-吉姆