使用ldap列出来自用户的组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用ldap列出来自用户的组相关的知识,希望对你有一定的参考价值。

我真的很熟悉LDAP,只是在我的php服务器和我的广告服务器之间建立了连接。我成功地验证了用户身份。现在我想列出用户所在的所有群组,看他是否是管理员(或者可能有其他方式?)。

到目前为止我有这个:

    $ldap = ldap_connect("192.168.1.108");
    if ($ldap && $bind = @ldap_bind($ldap, $name."@foobar.com", $pw)) {
        // ldap_search and ldap_get_entries here i guess, but how?
    }

我已经通过阅读php.net上的手册尝试了ldap_search,但我根本无法让它工作。有人可以告诉我如何让它工作吗?

答案

您可能想查看ldap_get_entries功能。下面可能是一些代码可以帮助你解决我曾经用于扫描会员资格的问题。 member可能在您的配置上有所不同,所以如果您遇到错误,我建议打印整个$data阵列。希望是你的起点。

// Users
$query = ldap_search($ldap, "cn=Users, dc=test, dc=local", "cn=*");
// Read all results from search
$data = ldap_get_entries($ldap, $query);

// Loop over 
for ($i=0; $i < $data['count']; $i++) {
    print_r($data[$i]['member']);
    echo "

";    
}
另一答案

我得到了这篇文章:http://www.php.net/manual/en/ref.ldap.php#99347非常感谢Aaron。

以上是关于使用ldap列出来自用户的组的主要内容,如果未能解决你的问题,请参考以下文章

Spring LDAP,检查指定组中用户的成员身份

只有当用户拥有某个组时,Zend Ldap才允许

思科协作系统:CUCM用户与域内指定的组用户同步

来自 CAS 的 LDAP 用户属性

使用 keycloak-js 列出用户所属的组?

如何将所有 memberOf 属性分配给 LDAP 中的特定用户