2012-02-02 1 views
0

도메인을 사용하여 응용 프로그램에 로그인 한 모든 사용자에 대해 내 DN을 모른 채 활성 디렉토리에서 정보 (descriptionand Mail)를 검색하려고합니다. 자격 증명, 나는 각 DD가 각 부서 및 조직 단위의 모든 사용자에게 매우 다른 dn을 제공하는 경우에만 정보를 검색 할 수 있습니다. 바인딩은 위의 지정된 데이터 만 검색하는 문제를 해결합니다.Distingushed 이름을 모른 채 LDAP 검색 또는 읽기 기능을 사용하여 AD에서 속성 검색

내 코드는 다음과 같습니다. NB : 일부 필드의 값을 변경했습니다.

<?php 
ldap_authenticate(); 
function ldap_authenticate() { 

//using ldap bind 
$ldaprdn = 'username';//ldap rdn or dn 
$ldappass = 'password';// associated password 
$filter="(&(objectClass=user))"; 
$justthese = array("sn","displayName"); 
//connect to ldap server 
$ldapconn = ldap_connect("hostname.net"); 

if ($ldapconn){ 
    //binding to ldap server 
    $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass); 
    //verify binding 
    if($ldapbind){ 
     $dn='CN=Donald Mailula,OU=Users,OU=Group Testing,OU=Central Office,DC=hostname,DC=net'; 
     $sr=ldap_read($ldapconn,$dn,$filter); 
     $entry = ldap_get_entries($ldapconn, $sr); 
     echo $entry[0]["mail"][0] . " is the email address of the cn your requested<br/>"; 
     echo $entry[0]["description"][0]; 
    }else{ 
     echo "LDAP bind failed..."; 
    } 
    } 
} 

?> 

내 주요 문제는 내가 어떻게 DN없이 기록을 검색하거나 내가 방법이 필요하므로 로그인 한 모든 사용자의 DN을 알 수 습관이다 dn을 먼저 얻은 다음 필요한 레코드를 검색하십시오.

사람들이 가능한가요?

+0

이 이봐, 난 정확히 같은 문제가있어 전체 샘플을 찾을 수 있습니다

감사 D를 도와주세요. 허용 된 답변을 사용하여이 작업을 수행 했습니까? 그렇다면 귀하의 검색 기준은 어떻게 보이게됩니까? – Paul

답변

3

이라고해야 할 것 ldap_search 당신이 here

<?php 
// $ds is a valid connexion id (samAccountName) 
$dn = "o=Ma Compagnie, c=FR"; 
$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"; 
?> 
관련 문제