是否可以在PHP中只获取LDAP组的成员?
我搜索了一下谷歌,但只找到了复杂的解决方案。我只需要这个名字而已。
$dn = "o=my_company, c=CH";
$filter="(|(sn=$person*)(vorname=$person*))";
$justthese = array( "ou", "sn", "vorname", "mail");
用户列在具有UID
的组中我发现了类似的东西,却无法随心所欲。 希望你能帮助我,如果你需要更多信息,请告诉我
答案 0 :(得分:2)
根据评论中的其他信息,您无法在单个LDAP查询中执行此操作。
这是一个可能的解决方案的概述 - 我使用类似的东西来编写我写的LDAP邮件列表管理器。 (这是PHP 7语法。)
// Setup and run LDAP Search
$dn = "cn=groups,o=my_company,c=CH"; // Location of groups in directory
$attributes = ['members'];
$filter = sprintf("(groupName=%s)", $group_name);
$search = ldap_search($conn, $dn, $filter, $attributes);
$results = ldap_get_entries($conn, $search);
// Function to call on each member
$member_func = function($uid)
{
// This is a helper that will get the user data and return an appropriate object (or string).
// Implementation is left as an exercise to the user
return get_user_details($uid);
};
// Need to filter LDAP results for actual values only
$member_data = array_map($member_func, array_filter($results['members'], function($k) { return is_numeric($k); }, ARRAY_FILTER_USE_KEY));