2017-02-10 10 views
0

Я пытаюсь найти пользователя в LDAP при выполнении анонимной привязки. В первую очередь это возможно?Как я могу найти пользователя в LDAP при использовании анонимной привязки?

Вот рабочий код.

$ldaphost = "dc.mydomain.com";  // your ldap server 
$ldapport = 389;     // your ldap server's port number 
$ldapuser = "[email protected]"; 
$ldappass = "somepass"; 
$basedn = 'dc=mydomain,dc=com'; 

$searchfor = 'seconduser'; 

//Connecting to LDAP 
$ldapconn = ldap_connect($ldaphost, $ldapport) or die("Could not connect to" . $ldaphost); 

if ($ldapconn) 
{ 

    ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3); 
    ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0); 

    // binding to ldap server 
    $ldapbind = ldap_bind($ldapconn,$ldapuser, $ldappass); 

    $filter = '(&(samaccounttype=805306368)(samaccountname=' . $searchfor . '))'; 

    $result = ldap_search($ldapconn, $basedn, $filter, array('samaccountname')); 

    $info = ldap_get_entries($ldapconn, $result); 

    echo '<pre>'; 
    print_r($info);  

} 

Единственное, что имеет вышеуказанный код, это то, что я должен был бы предоставить пользователю привязку. Вместо этого я хотел бы сделать анонимное. Для этого я изменил следующую строку кода из

$ldapbind = ldap_bind($ldapconn,$ldapuser, $ldappass); 

в

$ldapbind = ldap_bind($ldapconn); 

Но это дает мне следующую ошибку в ldap_search()

ldap_search(): Search: Operations error 

Как я могу найти для пользователя в LDAP с анонимной привязкой?

ответ

1

Администраторы Active Directory должны были сообщить вам, что анонимный доступ отключен по умолчанию. Скорее всего, они не хотят его менять. Для приложения запросите учетную запись службы (стабильный пароль).