1

ネゴシエートを受け入れるように構成された、Windows 認証を使用する IIS 7 をホストするイントラネット サイトがあります。また、接続ごとの Kerberos (非 NTLM) 認証を使用するように構成設定を設定しました。

 <system.webServer>
   <security>
     <authentication>
       <windowsAuthentication authPersistNonNTLM="true" />
     </authentication>
   </security>
 </system.webServer>

現在、Chrome は Kerberos チケットで 1 回正しく認証し、その後のリクエストで認証ヘッダーを送信しません。

ただし、Internet Explorer はすべての要求で大きな Kerberos チケットを送信します。Persist-Auth: trueサーバーは正しいヘッダーを送り返しています。したがって、IE は事前認証を気にしないことを知っている必要があります。この動作は、少なくとも Windows 7 64 ビットの IE9 および IE10 で確認できます。

この動作には他の理由がありますか?それを修正する方法は?

また、IIS7 でカーネル モードを使用しており、仮想ディレクトリ セキュリティを使用していないことにも注意してください。

IE9/IE10 を NTLM で接続している場合、事前認証は行われません (これは正しい動作です)。

IEが正しく動作するように、サーバーの応答に手動で追加できる魔法のヘッダーがあることを願っています...

4

2 に答える 2

2

フィドラーが問題だったようです。おそらくフィドラーは、私たちのイントラネットの何か奇妙なものと組み合わされていますか? ここから先の話はわかりません…

しかし、Fiddler がトラフィックをキャプチャしている場合、すべての IE 要求には、前述の Kerberos チケットが含まれていました。Fiddler が実行されていない場合、IE の動作は Chrome であり、Web サーバーへの接続ごとに 1 回だけチケットを送信します。

netsh traceFiddler を実行している場合と実行していない場合の両方を実行することで、これを発見しました。

おそらく、Kerberos 認証を確認するときは、Fiddler を使用しないのが最善です。誰かがこれについてもっと知っているなら、私は教育に感謝します。

于 2013-05-23T01:02:54.840 に答える
2

イントラネット サイトに使用している URL の種類について言及していませんでした。ホスト名または DNS エイリアスを使用しましたか? 短い (netbios) 名でしたか、それとも完全修飾名でしたか? これらの異なるタイプの URL を使用した場合に、同じ動作に気付きましたか? fiddler のこれらの余分なヘッダーが本当に Kerberos であるかどうか、または SPNEGO が NTLM にフォールバックしているかどうかを確認しましたか?

Fiddler は実際にはプロキシ サーバーとして動作します。WinInet にプロキシとして登録されているため、トラフィックを傍受できます。CNAME とプロキシは Kerberos と複雑な方法で対話するため、実際に何が起こっているのかを把握するのが難しくなる可能性があります。CNAME を使用すると、IE は実際にホスト名の Kerberos チケット要求を作成します。ミックスにプロキシを追加すると、この動作がさらに変わります。これが発生している問題である場合、それは Microsoft 製品に固有のものであり、最新のブラウザーが正しく動作することがわかった理由です。

プロキシを使用して Kerberos をトラブルシューティングするのは得策ではないため、ワイヤ トレースを実行して正しいことを行いました。

于 2013-10-08T04:43:42.953 に答える