Ошибка операций LDAP - программирование
Подтвердить что ты не робот

Ошибка операций LDAP

У меня проблема с подключением ldap.

$hostname="ldap://sub.domain.com";
$ds=ldap_connect($hostname, 389);
ldap_set_option ($ds, LDAP_OPT_REFERRALS, 0) or die('Unable to set LDAP opt referrals');
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3) or die('Unable to set LDAP protocol version');

if ($ds)
{
$dn = "OU=Users,OU=ro,DC=sub,DC=domain,DC=com";

if (!($ldapc=ldap_bind($ds))) { 
    echo "<p>Error:" . ldap_error($ds) . "</p>"; 
    echo "<p>Error number:" . ldap_errno($ds) . "</p>"; 
    echo "<p>Error:" . ldap_err2str(ldap_errno($ds)) . "</p>"; 
    die;
} 

$attributes = array("sn");
$filter = "(sn=*)";
$result = ldap_search($ds, $dn, $filter, $attributes);

echo $result;
$info = ldap_get_entries($ds, $result);
for ($i=0; $i < $info["count"]; $i++) {
    echo $info[$i]["ou"][0];
}
} else {
    echo "<h4>Unable to connect to LDAP server</h4>";
}

ldap_unbind($ds);

ldap любое анонимное соединение работает, потому что я тестирую его в браузере AD, и все в порядке. В этом коде он останавливается на

ldap_search($ds, $dn, $filter, $attributes);

Я получаю предупреждение:

Предупреждение: ldap_search(): Поиск: Операционная ошибка в.. \index.php в строке 38

Я не знаю, что может быть причиной этой ошибки, я ценю вашу помощь.

4b9b3361

Ответ 1

Чтобы получить это от оставшегося без ответа списка:


Я нашел проблему, была проблема связывания. Сервер принимает анонимную привязку, но не поиск. И с пользователем и проходом работал, но я делал ошибку. Для пользователя я рассмотрел только имя пользователя Windows, а не все местоположение из AD, теперь он работает.

Ответ 2

Если бы эта проблема, но я был правильно связан с пользователем, которому было разрешено искать.

Я решил это, установив эту опцию для работы с активным каталогом:

ldap_set_option($connection, LDAP_OPT_REFERRALS, 0);