LDAP 搜索过滤器不起作用


ldap search filter is not working

我想获取一个组的所有成员。

$filter = "member=*";
$result = ldap_search($ldap_connection, GROUP_USER_ADMINS.",".BASE_DS, $filter);

base_dn是组的完整 dn。

使用此过滤器,我得到了一个包含更多信息的数组,这是我没有计划的。

我可以使用

$entries = ldap_get_entries($ldap_connection, $result);
print_r($entries[0][members]);

以仅打印包含所有成员的结果。但是为什么过滤器不工作?我只想要成员而不是有关组的所有信息,例如何时创建或组的 samaccount类型。

为什么过滤器不工作?

指定作为搜索请求的一部分请求的属性。API 的默认值可能是"所有用户属性"。

参见

  • LDAP:掌握搜索过滤器
  • LDAP:搜索最佳做法
  • LDAP:编程实践

我添加了一个属性:$attr = 数组("成员");但是有两个属性在名称中带有"成员"。是否可以仅使用真正的键"成员"找到属性?

Array
(
   [count] => 1
   [0] => Array
   (
      [member] => Array
      (
         [count] => 2
         [0] => CN=User2,OU....,OU=...,DC=...,DC=...
         [1] => CN=User1,OU....,OU=...,DC=...,DC=...
      )
      [0] => member
      [count] => 1
      [dn] => CN=...,OU=....,OU=...,DC=...,DC=...(dn of the group)
   )  
)