У меня есть сервер Active Directory и сервер WAMP Windows, на котором размещаются веб-приложения PHP, которые должны иметь возможность аутентифицироваться в Active Directory с помощью Kerberos.
Я смог легко подключиться и привязать к хосту Active Directory с использованием некоторого образца кода PHP, но я не уверен, как это сделать с Kerberos. Я вижу много форумов и блогов, подробно описывающих, как это сделать на машинах NIX, но это не помогает мне в моей ситуации.
Я использовал Wireshark и Fiddler, чтобы подтвердить, что не происходит ведение переговоров Kerberos или NTLM.
Пример кода, который я использовал для подключения и привязки к LDAP:
<?php $ldaphost = "example.domain.com"; $ldapport = 389; $ldapuser = "user"; $ldappass = "password"; $ldapconn = ldap_connect( $ldaphost, $ldapport ) or die( "Unable to connect to the LDAP server {$ldaphost}" ); if ($ldapconn) { $ldapbind = ldap_bind($ldapconn, $ldapuser, $ldappass); if ($ldapbind) { echo "LDAP connection successful"; } else { echo "LDAP connction failed"; } } ?>
Любая помощь будет принята с благодарностью, спасибо!
Обновление: я боролся с этим весь день, и мне кажется, что мне нужно использовать ldap_sasl_bind (), возможно, используя GSSAPI в качестве механизма … Независимо от того, какие параметры я вставляю в ldap_sasl_bind (), я получаю следующую ошибку: Не удалось привязать к серверу: Неизвестный метод проверки подлинности '
Я не уверен, как реализовать GSSAPI, но некоторые примеры, которые я видел, показывают использование ldap_start_tls (), но я продолжаю получать сообщение об ошибке «Невозможно запустить TLS: Сервер недоступен».
Я не знаю, знает ли кто-нибудь о ldap_sasl_bind () (который недокументирован PHP) или ldap_start_tls, но если это так, как я должен идти, укажите мне в правильном направлении.