需要与PHP一起使用的组的LDIF

需要与PHP一起使用的组的LDIF,php,centos7,openldap,ldap-query,Php,Centos7,Openldap,Ldap Query,使用CentOS 7.5、Apache 2.4.6。在虚拟机中运行。没有SSL 我遵循并配置了OpenLDAP 我创建了用户并使用ldap_绑定($ds,$userid,$password)检查是否存在有效的用户和密码 现在,我试图找出一个用户是否是某个特定组的成员。为此,我(除其他外)研究了 我认为我在创建团队时犯了一个错误 我应该创建一个organizationalRole、group还是posixGroup?由于最终目标是检查哪些用户有权使用其中的哪些应用程序和功能(添加/更新/删除/等等

使用CentOS 7.5、Apache 2.4.6。在虚拟机中运行。没有SSL

我遵循并配置了OpenLDAP

我创建了用户并使用ldap_绑定($ds,$userid,$password)检查是否存在有效的用户和密码

现在,我试图找出一个用户是否是某个特定组的成员。为此,我(除其他外)研究了

我认为我在创建团队时犯了一个错误

我应该创建一个organizationalRole、group还是posixGroup?由于最终目标是检查哪些用户有权使用其中的哪些应用程序和功能(添加/更新/删除/等等),我想说的是,组织角色是要做的事情。目前,我使用:

组。ldif:

dn: cn=MyAppUsers,dc=mydept,dc=mycompany
objectClass: top
objectclass: posixGroup
cn: Authorized App1 Users
description: Users allowed to use App1
users.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_搜索中尝试了不同的过滤器组合($ds、$basedn、$filter),但似乎找不到正确的组合。因此,我认为错误的不是查询,而是创建组的方式。

以上两个LDIF实际上都在更新相同的条目。 第一个创建它,第二个向组中添加成员。但是,添加的用户由可分辨名称(DN)引用,memberUID只需要一个用户Id。 因此,它们应该是:

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))")

根据我文章中的第二个链接,这个用户和组成员身份将由PHP验证。我用来检查组成员资格的PHP代码就是根据这个链接编写的。我的代码无法返回组,因此,我添加了这个标记。此外,据我所知,组/角色的类型取决于使用位置;就我而言,PHP就这么简单吧?是的,效果很好。谢谢那么,我创建的每个用户都必须有一个uid吗,或者这也可以:ldap_search($ds,“…”,“(cn=user1)”)如果我有两个相似的用户呢?dn:uid=joe,ou=People,dc=mydept,dc=mycompany和dn:uid=joe,ou=People,dc=otherdept,dc=mycompany?我假设uid必须是唯一的?我可以没有uid吗,比如dn:cn=joe,ou=People,dc=mydept,dc=MyCompany如果你想使用Posix组,那么是的,所有用户都必须有uid,并且必须是唯一的(否则你的操作系统安全性可能会受到威胁。uid=login id)。Ludovic,不。我不必使用posixgroups。我不太清楚它们是什么。我使用它们作为样本使用它们。ldap用户将不是操作系统用户;i、 e.仅用于通过PHP进行身份验证。那么,我还能用什么呢?角色组合?如果您有一个用于定义这些的ldif示例,请与我们分享。然后,我如何从PHP检查角色组中是否存在用户?标准组是“groupOfNames”,其中成员不是由cn或uid引用的,而是由其整个DN引用的,即
member=cn=Joe,ou=People,dc=mydept,dc=myCompany