gpt4 book ai didi

java - 如何过滤和限制 LDAP 中组对象的属性

转载 作者:行者123 更新时间:2023-12-02 09:27:48 25 4
gpt4 key购买 nike

我想使用给定的过滤器(例如:uid="test*")和限制(结果中只有 10 个用户)获取 LDAP 中某个组的用户。

组对象如下所示。

cn=testRole,ou=Groups,dc=WSO2,dc=ORG

该对象有多个代表角色“testRole”的用户的成员属性。

现在我使用以下查询来检索组中的所有用户。

(&(objectClass=groupOfNames)(cn=testRole))

并且member被设置为返回的属性。

当我运行查询时,testRole 中的所有 10000 个用户都会被检索(作为 10000 个成员属性值)。

现在,

  1. 如何限制成员属性值的数量?
  2. 如何通过对成员属性的 uid 值应用过滤器来过滤成员属性值?

提前致谢!

我尝试将返回的属性设置为 member;range=0-99 但似乎它仅适用于 AD,不适用于 LDAP。我需要一个可以与 LDAP 一起使用的解决方案,无论它是否是 AD。

最佳答案

  1. 我认为这是不可能的,就像 openLDAP 那样。一个想法是设置 memberof首先覆盖,以便您可以获取用户条目 - 而不是通过查询组并获取所有 member属性 - 但通过直接查询 memberOf 的用户这个组。在这种情况下,您将能够使用所需的范围对结果进行分页。更不用说您还可以按特定成员进行过滤,例如。 (&(memberOf=<groupDN>)(uid=<uid>)) (我想这就是你在2-中问的问题)。请参阅这些链接:

  2. 您可以使用以下过滤器:

    (&(objectClass=groupOfNames)(cn=testRole)(member=uid=<uid>,ou=people,dc=example,dc=com))

    但请记住,此查询只是获取带有 cn=testRole 的 groupOfNames 条目,并包含带有 dn=... 的成员,添加 member此处的过滤器只会阻止条目匹配,以防成员的 <uid>不存在,任何匹配的 uid 都不会改变任何东西。

我认为您也可以保持查询不变,使用 java 按 x 到 y 的范围迭代成员属性应该不会太难,这完全取决于您需要用它做什么。

关于java - 如何过滤和限制 LDAP 中组对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58214019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com