【问题标题】:LDIF for group needed to use with PHP需要与 PHP 一起使用的组的 LDIF
【发布时间】:2019-03-17 16:13:56
【问题描述】:

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

我关注https://linuxhostsupport.com/blog/how-to-install-ldap-on-centos-7/ 并配置了 OpenLDAP。

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

现在我正在尝试查找用户是否是特定组的成员。为此,我查看了ldap query for group members(以及其他)

我认为我在创建组时犯了一个错误。

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

groups.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_search($ds,$basedn,$filter) 中尝试了不同的过滤器组合,但似乎找不到正确的组合。所以,我认为错误的不是查询,而是创建组的方式。

【问题讨论】:

  • 根据我帖子中的第二个链接,此用户和组成员资格将由 PHP 验证。我用来检查组成员资格的 PHP 代码是按照该链接。我的代码无法返回组,因此,我添加了这个标签。此外,据我了解,组/角色的类型取决于它的使用位置;就我而言,PHP。

标签: php centos7 openldap ldap-query


【解决方案1】:

上面的两个 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))")

【讨论】:

  • 就这么简单,嗯?是的,效果很好。谢谢!那么,我创建的每个用户是否都必须有一个 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 Groups,那么是的,所有用户都必须有 uid,并且它们必须是唯一的(否则你的操作系统安全可能会受到威胁。uid = login id)。
  • 卢多维奇,没有。我不必使用 posixgroups。我不太清楚它们是什么。我使用它们作为样本使用它们。 ldap 用户不是操作系统用户;即仅用于通过 PHP 进行身份验证。那么,我还能用什么?角色组?如果您有用于定义这些的示例 ldif,请分享。如果用户存在于角色组中,我将如何从 PHP 中检查?
  • 标准组是“groupOfNames”,其中成员不是由 cn 或 uid 而是由其整个 DN 引用,即member=cn=Joe,ou=People,dc=mydept,dc=myCompany
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-09
  • 1970-01-01
  • 1970-01-01
  • 2020-07-10
  • 2017-09-24
相关资源
最近更新 更多