Назад | Перейти на главную страницу

Привязка к LDAPS с использованием PHP не работает

Мы наконец-то настроили наш сервер для приема SSL-соединений ldap благодаря еще одному вопросу, на который ответил полезный участник.

Наша проблема сейчас в том, что при попытке привязки к ldap с помощью приведенного ниже простого скрипта PHP мы постоянно терпим неудачу. Связывание с использованием ldap вместо ldaps отлично работает с использованием сценария, поэтому я знаю, что ldap включен. Уловка заключается в том, что при использовании LDP.exe мы можем успешно подключиться и привязаться к ldap через порт 636, используя безопасное соединение.

Сценарий, с которым мы не справляемся, приведен ниже:

<?php
$ldap = ldap_connect("ldaps://localhost");
$username="user";
$password="pass";

if($bind = ldap_bind($ldap, $username,$password ))
echo "logged in";
else
    echo "fail";
    echo "<br/>done";
    ?>

Мы также безуспешно пытались ввести имя пользователя как «user @ domain» или «domain / user». Кажется, у меня вечно возникают вопросы по LDAP / Cert. Наша среда - это Server 2008.

Наконец нашел еще один вариант решения при использовании PHP 7.x. Надеюсь, это поможет кому-то другому.

Спасибо пользователю reddit gripejones здесь: https://www.reddit.com/r/PHPhelp/comments/3tykpc/php_7_and_ldap/

PHP 7 требует, чтобы переменная среды (LDAPCONF) была установлена ​​в положение вашего файла конфигурации. Раньше вы могли поместить файл конфигурации либо в эту папку C: \ openldap \ sysconf \ ldap.conf, либо в C: \ ldap.conf.

Вам не нужно копировать файлы dll, как указано в шаге 2 здесь: http://greg.cathell.net/php_ldap_ssl.html

Убедитесь, что ссылка на сервер ldap имеет формат ldaps: // имя_сервера и что имя сервера совпадает с именем сервера в сертификате (если это xyzzy.company.com, вам необходимо использовать ldaps: / /xyzzy.company.com, сделайте не используйте ldaps: // xyzzy).

Нет необходимости включать порт, если вы не используете нестандартный порт ssl.

Подписано: http://greg.cathell.net/php_ldap_ssl.html

Похоже, шаги №3, №5-7 необходимо выполнить в Windows.

Изменить URL чтобы включить порт, используемый для SSL, например ldaps://localhost:636 (предполагается, что 636 - это порт, на котором сервер LDAP прослушивает безопасные клиентские соединения).