【问题标题】:LDAP search for all users with a specific managerLDAP 搜索具有特定管理员的所有用户
【发布时间】:2020-07-16 17:57:53
【问题描述】:

似乎无法在 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);

【问题讨论】:

    标签: php ldap ldap-query


    【解决方案1】:

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

    允许使用通配符“”,“AD 属性”除外 是一个 DN 属性。 DN 属性的示例有 distinctName、 manager、directReports、member 和 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))";
    

    那么你就会得到你想要的结果...

    【讨论】:

    • 干得好,@Steve Lloyd。很高兴你找到了答案。请务必接受此作为您的答案,以便其他人可以清楚地看到它对您有用。
    • 是的,只需等待所需的 48 小时,系统就会允许我接受我自己的帖子作为答案。
    • 啊,明白了。我全忘了。
    • 这里有一个小错字:“除了当the是DN属性时”你有空可以更正一下吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-16
    • 2016-05-11
    • 1970-01-01
    • 2012-11-12
    • 1970-01-01
    相关资源
    最近更新 更多