NTLM を使用し、サーバー モジュールを使用せずに、Windows ドメインにない Linux マシン上の Apache2 サーバーで Windows ドメインに SSO を作成しようとしています。これが可能かどうかもわかりません。しかし、私が理解したことと、次に知るべきことをここで示します。
Authorization
まず、ブラウザ (IE および FF)が NTLM データ (メッセージ タイプ 1) を含むヘッダーを送信するオプションをオンにしました。これは機能します。次のような文字列が得られます。
NTLMSSP²¢1 (±USERS-PCDOMAIN
しかし、次は何ですか?この文字列を、AD が正しく実行されているサーバーに送信する必要がありますか? したがって、私のサーバーは IP として知られSERVER1.DOMAIN
ており、IP を持っています192.168.1.14
。
メッセージ タイプ 1 を AD サーバーに送信して NTLM チャレンジ メッセージ (タイプ 2) を返すには、どのプロトコルを使用し、どのような方法で行うことができますか?
私は次のようなものを書く必要があると思います:
<?php
$fp = fsockopen("192.168.1.14", 80 /* <--- which port? */, $errno, $errstr, 30);
if (!$fp)
die("$errstr ($errno)");
fwrite($fp, $headers['Authorization'] . "\r\n");
$ntlmChallengeData = '';
while (!feof($fp)) {
$ntlmChallengeData .= fgets($fp, 128);
}
fclose($fp);
var_dump($ntlmChallengeData); // The challenge data
しかし、Windows Server はどのポートで NTLM データに応答するのでしょうか?