https://linuxhostsupport.com/blog/how-to-install-ldap-on-centos-7/ 并配置了OpenLDAP。
现在我试图找出一个用户是否是某个特定组的成员。为此,我看了 ldap query for group members (除其他外)
我应该创建一个organizationalRole、group还是posixGroup?由于最终的目标是检查哪些用户有权使用其中的哪些应用程序和功能(添加/更新/删除/等等),我想说的是,organizationalRole就是要做的事情。当时,我用了:
dn: cn=MyAppUsers,dc=mydept,dc=mycompany objectClass: top objectclass: posixGroup cn: Authorized App1 Users description: Users allowed to use App1
用户.ldif:
dn: cn=MyAppUsers,dc=mydept,dc=mycompany changetype: modify add: memberUid memberUid: cn=user1,ou=People,dc=mydept,dc=mycompany memberUid: cn=user2,ou=People,dc=mydept,dc=mycompany
我在ldap\u search($ds,$basedn,$filter)中尝试了不同的过滤器组合,但似乎找不到正确的组合。所以,我认为错误的不是查询,而是创建组的方式。
上面两个LDIF实际上都在更新同一个条目。 所以他们应该是:
memberUid: user1 memberUid: user2
然后可以检查用户是否属于
ldap_search($ds, "cn=MyAppUsers,dc=mydept,dc=mycompany", "(memberUid=user1)")
或者可以搜索用户所属的所有组
ldap_search($ds, "dc=mydept,dc=mycompany", "(&(objectclass=posixGroup)(memberUid=user1))")