イントラネットに展開するための基本的な ASP MVC Web サイトを作成しました。ユーザーが IIS ボックスと同じドメインにいることが想定されており、認証された Windows ユーザーでない場合は、アクセスできません。
Server 2003 R2 SP2 で実行されている IIS6 にこれを展開しました。Web アプリは、独自のプール ユーザー アカウントを持つ独自のプールで構成されます。Web アプリの IIS ディレクトリ セキュリティ オプションは "Windows 統合セキュリティ" のみに設定され、web.config ファイルには次のものが含まれます。
<authentication mode="Windows" />
IIS6 サーバー自体のリモート デスクトップ セッションから、http://localhost/myapp経由でアクセスした場合、IE7 ブラウザー ウィンドウは正常に認証され、Web アプリをナビゲートできます。
ただし、サーバーからも、サーバーの名前 (つまりhttp://myserver/myapp ) を介してアクセスすると、IE7 は資格情報ダイアログを表示し、正しい資格情報の入力を 3 回試行した後、最終的に「HTTP エラー 401.1 - 承認されていません: アクセスが拒否されました。無効な資格情報へ」。
ワークステーションが Web アプリの URL を参照するときにも同じ問題が発生します (当然、"localhost" ではなくサーバーの名前を使用します)。
IIS6 サーバーは、私たちが持っている唯一のドメインのメンバーであり、ファイアウォールが有効になっていません。
これが機能するために正しく構成できなかったものはありますか?
ありがとう、
Matt Ryan、Graphain、Mike Dimmick の提案を試してみましたが、今のところ成功していません。Server 2003 DC と別のサーバー 2003 IIS6 サーバーを使用して仮想マシン テスト ラボを構築したところ、問題を再現できました。
localhost 以外の URL (つまり、 http://iis/myapp )を介して初めてサイトにアクセスしようとすると、IIS6 サーバーのシステム イベント ログにエントリが表示されます。FQDN URL も失敗します。
ソース: Kerberos、イベント ID: 4
Kerberos クライアントは、サーバー host/iis.test.local から KRB_AP_ERR_MODIFIED エラーを受け取りました。使用されたターゲット名は HTTP/iis.test.local でした。これは、kerberos サービス チケットの暗号化に使用されたパスワードが、ターゲット サーバーのものと異なることを示しています。通常、これは、ターゲット レルム (TEST.LOCAL) とクライアント レルムで同じ名前のマシン アカウントが原因です。