активный каталог — PHP ldap_connect + ldap_bind не может связать

У меня есть этот код PHP:

$ldap = ldap_connect("aaa.bbbbb.cc")
or die("Could not connect to LDAP server.");

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

$ldapbind = ldap_bind($ldap);

if ($ldapbind) {
echo "LDAP bind successful...";
} else {
echo "LDAP bind failed..."; //end up here
}

И я не могу заставить его успешно связываться, я перепробовал все виды комбинаций.
Передача учетных данных, используя URI с «ldap: //».

Следующий код C # отлично работает при привязке к тому же серверу LDAP:

var connection = new LdapConnection("aaa.bbbbb.cc");
connection.Bind();

LDAP API для PHP кажется довольно трудным для отладки, так как, если связывание не удается, вы не получите никакого результата, поэтому я не знаю, как увидеть, что не получается, если он не может получить доступ к серверу, неверные учетные данные или что-то еще ..

Итак, есть идеи, что может привести к сбою кода PHP? что-то особенное мне нужно сделать?
(Расширение LDAP включено для PHP)

0

Решение

У меня были проблемы с PHP LDAP раньше.

К счастью, я нашел это в комментариях к документу:

ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);

Что даст вам подробный вывод при попытке открыть соединение и связать.

Я обычно делаю это:

 ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);
$ldap = ldap_connect("ldap://" . $domainController, $port);
$bind = @ldap_bind($ldap, $username . $accountSuffix, $password);
if (!$bind) {
// throw or something
echo ldap_error($ldap); // http://php.net/manual/en/function.ldap-error.php
}

В Википедии есть хорошее описание различных частей протокола LDAP.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]