从特定组LDAP活动目录验证用户

3

我希望只有教职工用户组能够访问我网站上的某个网页。

这个页面只是为了供教职工浏览。

在活动目录中,我们有一个名为“教职工”的用户组。

以下是我使用LDAP/活动目录验证用户的代码片段,但我只想验证属于教职工组的用户。

$ldap = ldap_connect("ldap.domain.com")
if($bind = ldap_bind($ldap, $_POST['username'], $_POST['password'])) {
  // log them in!
} else {
  // error message
}
1个回答

1

AD将成员列表存储在组上,而不是用户的组成员身份,因此您需要检索cn=faculty,ou=whatever,dc=acme,dc=com对象的成员列表,并查看是否列出了该用户。如果是,则让他们尝试绑定,如果成功则继续。

在测试绑定之前,我会先测试组成员身份,因为绑定通常比查询更昂贵。


使用ldap_search函数来搜索指定组中的用户并返回true,可以吗? - Brad
1
@geoffc - 你确定吗?我正在查看我的AD模式,我看到我的用户有一些memberOf属性,它们是我所属的组。我不确定这是否是Microsoft-ism,还是标准的LDAP实践(目前正在尝试弄清楚)。 - DougN
官方模式不支持此功能,至少在我上次查看时是这样的。有时候它可能看起来像是存在的,如果工具通过检查全局目录或查询该用户所属的所有组来伪造它的背景。也许他们已经改变了吗? - geoffc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接