【问题标题】:how to get groups of a user in ldap如何在ldap中获取用户组
【发布时间】:2018-12-22 19:51:21
【问题描述】:

我正在使用带有 phpldapadmin 的 openldap,并且我正在尝试检查某个用户的组是什么。 这是我的计划……

这是我尝试过的,但是没有用

docker-compose exec openldap ldapsearch -x -H "ldap://openldap" -D "cn=admin,dc=openldap" -w admin -b "cn=root,ou=django,dc=openldap" '(&(objectClass=*)(member=cn=superuser,ou=groups,dc=openldap))'

PS:我是 ldap 新手,this 是我正在使用的图像

【问题讨论】:

    标签: ldap docker-compose openldap ldap-query


    【解决方案1】:

    有大量关于 LDAP 和查询的文献,通过示例解释了如何搜索组。

    首先,baseDN (-b) 应该是层次结构的顶部:dc=openldap

    其次,您正在从组中搜索,因此过滤器应包含(objectclass=groupOfNames)

    最后,您要搜索用户所属的组,过滤器应为(member=cn=root,ou=django,dc=openldap)

    然后得到的查询是:

    ldapsearch -x -H "ldap://openldap" -D "cn=admin,dc=openldap" -w admin -b "dc=openldap" '(&(objectClass=groupOfNames)(member=cn=root,ou=django,dc=openldap))'

    这将返回组条目。如果您只对名称感兴趣,请在查询末尾添加  dn

    【讨论】:

    • groups 是我很喜欢的一个 OU。我为什么要添加这个? objectclass=groupOfNames
    • 如果您在 ou=groups 下使用子树范围搜索所有条目,则将返回 ou=groups 条目。如果您只想要组,则需要指定适当的过滤器,例如 (objectclass=groupOfNames)(或用于您的组的任何 objectClass 值)。
    • 您能否链接到一些不错的关于 LDAP 和查询的文献
    • 这本圣经是并且仍然是“理解和部署 LDAP 目录服务,第 2 版”,作者是 Tim Howes、Mark Smith 和 Gordon Good。它很旧,但仍然很重要
    【解决方案2】:

    要为 user1 获取用户组,这个搜索过滤器就足够了:

    (&(memberUid=user1))
    

    但是请注意,组搜索属性可能会根据开放的 ldap 配置而有所不同。可以是 member、uniqueMember、memberUid 等

    【讨论】:

      【解决方案3】:

      LDAP 的其他变体可能需要您使用:-b ou=Group,dc=example,dc=com

      ldapsearch -h ldap -D cn=admin,dc=example,dc=com -x -w password -b ou=Group,dc=example,dc=com -s sub '(&(objectClass=groupOFNames)(memberuid=user1))' DN
      

      【讨论】:

      • 请阅读this帮助页面,了解如何正确格式化代码。
      【解决方案4】:

      不知道为什么接受的答案对我不起作用。 对我有用的命令是:

      ldapsearch -H "ldap://$server" -x -D "$user" -w "xxxx" -b "baseDN"  "(cn=notMe)" memberof
      

      【讨论】:

      • 用你自己的信息替换notMe。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-30
      相关资源
      最近更新 更多