回答:
から:
HTTP認証がNTLMまたはKerberosであるかどうかを確認する
http://support.microsoft.com/kb/891032
[...]「このトレースを調べて、クライアントが認証情報を送信しているかどうかを確認しているので、TCPセグメントを使用して、HTTP GET要求とサーバーからの応答を追跡できます。これは、フレームのスニペットです。クライアントから認証情報を送信します。
23 4294967263.4294641621 LOCAL 00045A420DBC HTTP GET要求(ポート3135を使用するクライアントから)192.168.0.2 192.168.0.4 IP HTTP:GET要求(ポート3135を使用するクライアントから)HTTP:要求メソッド= GET HTTP:Uniform Resource Identifier = /webapplication1/webform1.aspx HTTP:プロトコルバージョン= HTTP / 1.1 HTTP:Accept = image / gif、image / x-xbitmap、image / jpeg、image / pjpeg、application / vnd。HTTP:Accept-Language = en-us HTTP:Accept-Encoding = gzip、deflate HTTP:User-Agent = Mozilla / 4.0(compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR HTTP:Host = alien HTTP:Connection =キープアライブHTTP:承認= TlRMTVNTUAABAAAAB4IIogAAAAAAAAAAAAAAAAAAAAAFASgKAAAA 44 77 3D 3D 0D 0A 0D 0A AAADw == ....
「これは何を示していますか?Authorizationヘッダーが "Negotiate"に設定されており、そのヘッダーで送信された長い文字列を確認できます。この応答は、クライアントとサーバーがNTLM接続をネゴシエートしていることを示しています。最初の文字が「T」であるため、NTLM認証がここで使用されていることがわかります。「Y」の場合は、Kerberosになります。ヘッダーは、「NTLM」ではなく「Negotiate」に設定されます。これは、つまり、KerberosまたはNTLMを使用しますが、認証方法を "ネゴシエート"し、可能であればKerberosを最初に試行します。Kerberosを使用できない場合は、NTLMを使用します。 "
// if it is Negotiate...
if (String.Compare(Request.ServerVariables["HTTP_AUTHORIZATION"].Substring(10, 1), "Y", true) == 0)
{
// we are using Kerberos
}
else
{
// we are using NTLM
}
html / aspページで以下のコードを使用します。
<%
authType=UCase(Request.ServerVariables("AUTH_TYPE"))
authHeader=Request.ServerVariables("HTTP_AUTHORIZATION")
response.write " Authentication Method : " & authType & "<BR>"
LenAuthHeader = len(authHeader)
response.write " Protocol : "
if Len(authType ) =0 then response.write " Anonymous" else if authType<>"NEGOTIATE" then response.write authType else if LenAuthHeader>1000 then response.write "Kerberos" else response.write "NTLM"
%>
その答えは完全ではありません。接続でNTLMを使用する方法は2つあります。1つは、WWW-Authenticateメソッド「NTLM」を使用する方法です。もう1つはネゴシエート経由です。NegotiateはGSSAPIを使用しており、GSSAPIはさまざまなメカニズムを使用できます。Windowsでは、これにはKerberosとNTLMの両方が含まれます。
Wiresharkはこれらすべてをデコードし、TLSを使用していない場合、何が起こっているかをすばやく表示できます。そうであれば、WiresharkがTLSトラフィックを復号化できるように手配できます。少し手間がかかります。
HTTPリクエストヘッダー(Firebug、Chrome Dev Tool、またはFiddlerから確認できます)に、NTLMを使用している場合は次のように表示されます
認証:NTLM = TlRMTVNTGD6XAAAAGAAYAG425qAAYABgAhgAAAAAAAABIAAAADgAOAEgAAAAYABgAVgAAAAAAAACeAAAABYKIogUBKAoAAAAPcwBpAG0AcABsAGkAcABOADMAUgBXAEsAVwBBAEwAVABFAFIAQQAzVtleqNj7HAAAAAAAAAAAAAAAAAAAAACW3g66aPaiileWScIYweBj6fs2iGY / TA3 =
IIS管理パネルから、[認証]に移動して、好みの認証を選択できます。