Как я могу подключиться к Active Directory, используя LDAPS на PHP? - PullRequest
0 голосов
/ 06 февраля 2019

Мне было интересно, как подключиться к контроллеру домена Active Directory с помощью LDAPS в PHP на другом сервере Windows.Я экспортировал корневой сертификат и сертификат сервера и поместил корень в доверенное корневое хранилище, а аутентификацию сервера - в свои личные сертификаты в хранилище сертификатов Windows.Когда я пытаюсь подключиться, используя port 389, это нормально, но когда я пытаюсь подключиться, используя port 636, я получаю сообщение об ошибке.

 // LDAP variables <br>
 $ldap_host = "myhost";   // your ldap servers<br>
 $ldap_port = 636;          // your ldap server's port number<br>
 $base_dn = "OU=Users,OU=domain,DC=example,DC=local";<br>

// Connecting to LDAP<br>
$connect = ldap_connect( $ldap_host, $ldap_port)<br>
or exit(">>Could not connect to LDAP server<<");<br>
echo "Connected to $ldap_host";<br>

ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);<br>
$ldap_user  = "CN=UserName,OU=No Policy,DC=example,DC=local";<br>
$ldap_pass = "Password";<br>
// verify binding<br>
$bind = ldap_bind($connect, $ldap_user, $ldap_pass)<br>
or exit(">>Could not bind to $ldap_host<<" . ldap_error($connnect) );<br>

Вывод, который я получаю: «Подключен к myhost Не удалось привязать к myhost.
При использовании порта 389 я получаю "подключен к myhost"

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Мне удалось подключиться к моему серверу, используя ldaps на PHP, используя следующий метод.

$connect = ldap_connect('ldaps://'. $ldap_host. ':'. $ldap_port)

Мне также пришлось создать эти папки C: \ openldap \ sysconf, а затем поместить в них текстовый документ с именем ldap.conf.
Затем я отредактировал ldap.conf и поместил в TLS_REQCERT никогда
Это сработало для подключения через LDAPS.
Правильный способ сделать это - скачать cacert.pem отсюда:
https://curl.haxx.se/docs/caextract.html Затем добавьте ваш хеш сервера в конец этого сертификата.
Наконец, отредактируйте ldap.conf, указав TLS_CACERT \ path \ to \ cert \ cacert.pem, и закомментируйте комментарий TLS_REQCERT сверху.
Затем перезапустите apache / nginx / etc, и вы сможете подключиться, используя LDAPS.

0 голосов
/ 06 февраля 2019

Как указано в документах , вам необходимо использовать LDAP-URI для подключения через LDAPS.

В вашем случае это будет выглядеть так:

ldap_connect('ldaps://'. $ldap_host. ':'. $ldap_port);
...