Active Directory サーバーと、Kerberos を使用して Active Directory に対して認証できる必要がある PHP Web アプリケーションをホストする Windows WAMP サーバーがあります。
サンプルの PHP コードを使用して、Active Directory ホストに簡単に接続してバインドすることができましたが、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";
}
}
?>
どんな助けでも大歓迎です、ありがとう!
更新:私はこれに一日中取り組んできましたが、おそらく GSSAPI をメカニズムとして使用して、ldap_sasl_bind() を使用する必要があると思います... ldap_sasl_bind() にどのパラメーターを入力しても、次のエラーが発生します: 'サーバーにバインドできません: 不明な認証方法'
GSSAPI の実装方法がわかりませんが、ldap_start_tls() を使用した例をいくつか見ましたが、「TLS を開始できません: サーバーを利用できません」というエラーが表示され続けます。
ldap_sasl_bind() (PHP では文書化されていません) または ldap_start_tls について誰かが知っているかどうかはわかりませんが、これが私の進むべき道である場合は、正しい方向に向けてください。