【问题标题】:LDAP: Get list of users in a specific groupLDAP:获取特定组中的用户列表
【发布时间】:2015-12-01 07:06:28
【问题描述】:

我正在尝试获取特定用户组的所有用户。我在 java 中这样做,我可以连接到 ldap 并从不同的查询中获取结果。然而,我已经寻找解决方案,但据我所知,我工作场所的 LDAP 的结构与正常情况不同。

用户的 dn:

ou=Users,O=MYCOMPANY.COM

用户组的dn:

cn=Admin,ou=Profiles,ou=MYAPP,ou=Applirights,O=MYCOMPANY.COM

对于用户组,cn 是权限级别/组名(Admin),应用程序的名称在组织单元中。使用这种结构,我将如何查询该特定组中的所有用户?

我试过了:

NamingEnumeration<?> namingEnum = ctx.search("ou=Users,O=MYCOMPANY.COM", "(cn=Admin,ou=Profiles,ou=MYAPP,ou=Applirights,O=MYCOMPANY.COM)", searchControls);

但是,搜索控件中需要哪些属性?我使用uid,这是用户的登录名。

我还尝试了here 概述的内容:

(&(objectCategory=user)(memberOf=cn=Admin,ou=MYAPP,ou=Applirights,O=MYCOMPANY.COM))

没有任何效果,我的意思是我得到 0 个结果但没有错误。如何通过给定的 ldap 组织实现这一目标?

【问题讨论】:

    标签: java ldap


    【解决方案1】:

    群组有一个叫做memberOf的东西: 所以试试这个:

    search -s sub -b "DC=whatever,DC=mydomain,DC=com" "(&(objectCategory=user)(memberOf=CN=GROUP,DC=whatever,DC=mydomain,DC=com))"
    

    你在上面填写whatevermydomainGROUP^

    【讨论】:

      【解决方案2】:

      搜索控件中需要哪些属性?

      searchControls 中列出的属性是您希望返回的属性。包含组成员的那个。根据objectClass 的组对象是什么,它可能是:

      • uniqueMembergroupOfUniqueNames
      • roleOccupantorganizationalRole

      等等。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-11
        • 1970-01-01
        • 1970-01-01
        • 2017-06-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多