LDAP搜索具有特定管理员的所有用户

时间:2020-07-16 17:57:53

标签: php ldap ldap-query

似乎无法在LDAP中搜索manager属性。我想返回所有以Jane Doe为管理员的用户。任何指针将不胜感激。

$filter = "(&(objectClass=user)(objectCategory=person)(manager=*Jane Doe*))";
$result = ldap_search($ldap, $ldap_dn, $filter) or exit("Unable to search LDAP server");
$entries = ldap_get_entries($ldap, $result);

1 个答案:

答案 0 :(得分:1)

进行更多搜索(在我的一位了不起的朋友的帮助下-感谢Scott Carter!)产生了此问题。 Answer below found here

允许使用通配符“ ”,但“ AD属性”除外 是DN属性。 DN属性的示例为distinguishedName, 经理,directReports,成员和memberOf。如果属性是DN, 那么仅允许使用等于运算符,并且您必须指定 值的完整专有名称(或所有字符的“ ”字符 具有该属性任何值的对象)。不要封闭DN值 用括号括起来(在某些文档中有误)。如果 属性是多值属性,则如果满足以下条件之一,则满足条件 属性中的值与过滤器匹配。

因此,要搜索拥有Jane Doe经理的所有成员,您必须首先具有Jane Doe的完整dn。

$filter="(&(objectClass=user)(objectCategory=person)(manager=CN=Jane Doe,OU=IT,OU=Users,OU=USA,OU=yourcompany,DC=corp,DC=yourcompany,DC=com))";

然后,您将获得想要的结果...