PHP Ldap配置文件用户及其嵌套组

时间:2014-04-01 07:47:07

标签: php active-directory ldap

我需要通过ldap查询从Active Directory获取一些用户属性。 我使用此代码:

$attributes=array("cn","sAMAccountName","sn","givenname","memberof","mail","telephonenumber","mobile","useraccountcontrol","department");
$filter = "(&(objectClass=user)(sAMAccountName=".$username."))";
$result = ldap_search($ldaphandler, $domain, $filter, $attributes);

我需要所有嵌套组,但是使用此查询我只获得第一级组(memberof字段)。但是,例如,如果用户是InnerGroup的成员,而InnerGroup是OuterGroup的成员,我想获得两个组(InnerGroup和OuterGroup)。可能吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

要查找“user1”所属的所有群组(请参阅AD search filter):

  1. 将基数设置为组容器DN;例如,根DN(dc = dom,dc = fr)
  2. 将范围设置为子树
  3. 使用以下过滤器:(成员:1.2.840.113556.1.4.1941:= cn = user1,cn = users,DC = x)
  4. LDIFDE.EXE示例(Windows上的本机命令行AD搜索):

    ldifde -f t.txt -d "DC=dom,DC=fr" -r "(member:1.2.840.113556.1.4.1941:=CN=jblanc,OU=MonOu,DC=dom,DC=fr)"