在OU Active目录中搜索用户

时间:2012-02-29 18:31:09

标签: php active-directory

我需要进行Active目录搜索,例如我有以下OU

OU=client,OU=office,OU=Administration,DC=domain,DC=local

如何使用memberof指令在OU中搜索用户(例如sAMAccountName ='JUAN.PERZ')?

我用php用ldap_search进行搜索。

我只需要搜索用户,如果用户在OU中,则使用php,

感谢!!!

2 个答案:

答案 0 :(得分:2)

您需要的东西称为ldap_search,您可以找到完整的样本here

<?php 
// $ds is a valid connexion id (samAccountName) 
$dn = "OU=client,OU=office,OU=Administration,DC=domain,DC=local"; 
$filter="(&(objectCategory=person)(samAccountName=$ds))"; 
$justtheseattributes = array( "ou", "sn", "givenname", "mail"); 
$sr=ldap_search($ds, $dn, $filter, $justtheseattributes); 
$info = ldap_get_entries($ds, $sr); 
echo $info["count"]." found entries.\n"; 
?> 

答案 1 :(得分:1)

你需要的只是ldap_search:

资源ldap_search(resource $ link_identifier,string $ base_dn,string $ filter [,array $ attributes [,int $ attrsonly [,int $ sizelimit [,int $ timelimit [,int $ deref]]]]] )

第一个参数是来自ldap_connect的资源,第二个是你的形式

 "OU=client,OU=office,OU=Administration,DC=domain,DC=local"

第三个是过滤形式

"sAMAccountName={$myADlogin}"

等...

memberOf在LDAP中保留组的DN,而不是OU的DN!