如何在ldap中获取用户组

时间:2018-07-14 17:47:18

标签: ldap docker-compose openldap ldap-query

我正在将openldap与phpldapadmin一起使用,并且我正在尝试检查某个用户的组。 这是我的计划...

Ldap Scheme

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

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是我正在使用的图像

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

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

(&(memberUid=user1))

但是请注意,基于打开的ldap配置,组搜索属性可能会有所不同。它可以是member,uniqueMember,memberUid等

enter image description here

答案 2 :(得分:0)

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