我正在将openldap与phpldapadmin一起使用,并且我正在尝试检查某个用户的组。 这是我的计划...
这是我尝试过的方法,但是没有用
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是我正在使用的图像
答案 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等
答案 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