2014-04-01 56 views
0

我需要通過ldap查詢從Active Directory獲取一些用戶屬性。 我使用這個代碼:帶有嵌套組的PHP Ldap配置文件用戶

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

我需要的所有嵌套組,但與此查詢我只得到了第一級別小組(成員字段)。但是,例如,如果一個用戶是InnerGroup的成員,並且InnerGroup是OuterGroup的成員,我想要同時獲得這兩個組(InnerGroup和OuterGroup)。它可能嗎?

謝謝。

回答

1

要查找所有的基團「USER1」是其成員(見AD search filter):

  1. 設置基座到組容器DN;例如root DN(dc = dom,dc = fr)
  2. 將範圍設置爲子樹
  3. 使用以下過濾器:(成員:1.2.840.113556.1.4.1941:= cn = user1,cn = users,DC = X)

實施例與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)"