LDAP搜索筛选器,用于在一个查询中搜索多个用户组

LDAP搜索筛选器,用于在一个查询中搜索多个用户组,ldap,Ldap,我需要从groupofuniquenames类型的条目中获取用户的所有成员身份,该条目在uniqueMember属性中具有成员身份数据。分组如下所示: dn: cn=GROUP1,ou=groups,dc=zxc objectclass: groupofuniquenames uniqueMember: uid=1252611,ou=users,dc=zxc uniqueMember: uid=23893,ou=users,dc=zxc uniqueMember: uid=95044,ou=us

我需要从groupofuniquenames类型的条目中获取用户的所有成员身份,该条目在uniqueMember属性中具有成员身份数据。分组如下所示:

dn: cn=GROUP1,ou=groups,dc=zxc
objectclass: groupofuniquenames
uniqueMember: uid=1252611,ou=users,dc=zxc
uniqueMember: uid=23893,ou=users,dc=zxc
uniqueMember: uid=95044,ou=users,dc=zxc
uniqueMember: uid=127121,ou=users,dc=zxc

dn: cn=GROUP2,ou=groups,dc=zxc
objectclass: groupofuniquenames
uniqueMember: uid=1252611,ou=users,dc=zxc
uniqueMember: uid=589454,ou=users,dc=zxc
uniqueMember: uid=34848,ou=users,dc=zxc
uniqueMember: uid=1252612,ou=users,dc=zxc
但是如果我使用这样的过滤器

(&(objectclass=groupOfUniqueNames)(|(uniqueMember=uid=1252611,ou=users,dc=zxc)(uniqueMember=uid=1252612,ou=users,dc=zxc)))
dn: cn=GROUP1,ou=groups,dc=zxc
objectclass: groupofuniquenames
uniqueMember: uid=1252611,ou=users,dc=zxc
cn: GROUP1

dn: cn=GROUP2,ou=groups,dc=zxc
objectclass: groupofuniquenames
uniqueMember: uid=1252611,ou=users,dc=zxc
cn: GROUP2
我得到这样的结果

(&(objectclass=groupOfUniqueNames)(|(uniqueMember=uid=1252611,ou=users,dc=zxc)(uniqueMember=uid=1252612,ou=users,dc=zxc)))
dn: cn=GROUP1,ou=groups,dc=zxc
objectclass: groupofuniquenames
uniqueMember: uid=1252611,ou=users,dc=zxc
cn: GROUP1

dn: cn=GROUP2,ou=groups,dc=zxc
objectclass: groupofuniquenames
uniqueMember: uid=1252611,ou=users,dc=zxc
cn: GROUP2
因此,搜索结果不包含1252612也是GROUP2成员的信息。在LDAP搜索筛选器中,它们仅返回一个或条件匹配的结果。因此,之所以会出现这个问题,是因为筛选器查询中的用户可以属于相同的组,但组结果只为一个用户返回


我也不明白为什么返回的uniqueMember属性不包含所有成员身份的数据,如果可以实现这一点,它也会很有帮助。

您是如何进行查询的?过滤器无法控制返回哪些属性此处的问题与返回哪些属性无关……您的问题是:“我也不明白为什么返回的uniqueMember属性不包含所有成员身份的数据,如果这可以实现,它也会很有帮助。”结果似乎是正确的,因为返回了所有预期的组,但属性不完整。我遗漏了什么吗?这里的实际问题是,搜索结果不包含uid 1252612也是Group2的成员这一事实。您使用的是什么语言?uniqueMember属性应该与所有匹配的用户一起使用多值(这与您遇到的问题不同——您应该看到所有成员,无论它们是否是过滤器的一部分)。但是如果您只访问多值属性的元素0。。。您只能看到列表中的第一个成员。