Мы наконец-то настроили наш сервер для приема 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 прослушивает безопасные клиентские соединения).