Php 验证特定组ldap active directory中的用户

Php 验证特定组ldap active directory中的用户,php,active-directory,ldap,Php,Active Directory,Ldap,我只希望一组(教员)用户能够访问我网站上的某个网页 本页仅供教师阅读 在active directory中,我们有一个名为“教员”的小组 下面是一段代码,我必须通过ldap/active directory对用户进行身份验证,但我只想对教员组中的用户进行身份验证 $ldap = ldap_connect("ldap.domain.com") if($bind = ldap_bind($ldap, $_POST['username'], $_POST['password'])) { // lo

我只希望一组(教员)用户能够访问我网站上的某个网页

本页仅供教师阅读

在active directory中,我们有一个名为“教员”的小组

下面是一段代码,我必须通过ldap/active directory对用户进行身份验证,但我只想对教员组中的用户进行身份验证

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

AD将成员列表存储在组中,而不是用户的组成员资格,因此您必须检索cn=faculty、ou=whatever、dc=acme、dc=com对象成员列表,并查看是否列出此用户。如果他们是,那么让他们尝试绑定,如果成功,就继续绑定


我会在测试绑定之前测试组成员资格,因为绑定通常比查询更昂贵

这会使用ldap_搜索功能来搜索指定组中的用户并返回true吗?@geoffc-你确定吗?我正在查看我的广告模式,我看到我的用户有一些memberOf属性,这些属性就是我所属的组。我不确定这是否是微软的ism,或者这是否是标准的LDAP实践(目前正试图弄清楚这一点)。在我上次查看时,正式的模式不支持它。有时,如果该工具通过检查全局目录或查询所有组来伪造背景,则该用户可能是其成员。也许他们改变了?