PHP LDAP 获取组的成员



在PHP中是否可以只获取LDAP组的成员?

我在谷歌上搜索了一下,但只找到了复杂的解决方案。 我只需要名字,仅此而已。

$dn = "o=my_company, c=CH";
$filter="(|(sn=$person*)(vorname=$person*))";
$justthese = array( "ou", "sn", "vorname", "mail");

用户列在具有 UID 的组中

我找到了这样的东西,但无处可去。希望你能帮助我,如果您需要更多信息,请告诉我

根据注释中的其他信息,您无法在单个 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));

最新更新