弊社のイントラネット用に取り組んでいるaspxサイトがあります。最近、表示するためにユーザーがActiveDirectoryの特定のグループのメンバーである必要がある安全なページをいくつか追加しました。サイトにWindows認証を使用しています(.configにWindows認証があります)。IISではWindows認証が有効になっており、匿名認証は無効になっています。プロジェクトのプロパティでNTLM認証も有効にしました。
私の知る限り、セキュリティは期待どおりに機能しています。適切な資格情報を持つユーザーのみが安全なページにアクセスできます(コントローラーアクションの[Authenticate Roles = "bla"]チェックでユーザーを保護しています)。
私が抱えている問題は実際には問題ではありませんが、もっと厄介です。ユーザーがサイトにログインするたびに、ログインダイアログが表示されます。これは欲しくない。サイトがWindowsログインから資格情報を取得し、それを使用してアクセス権を決定するようにします。Windows認証がそれ自体でこれを処理しているという印象を受けましたが、私は間違っていたようです。
基本的に、ログインプロンプトを取り除き、Windows認証で同じ機能をすべて自動的に処理するにはどうすればよいですか?
変更が必要なサーバー設定はありますか?それは私のコードに何かあるのでしょうか?
可能であれば、少なくともIE、Firefox、Chromeで動作するようにしたいと思います。
***2012年7月23日更新
提案してくれた皆さんに感謝しますが、残念ながら私はまだこれを正しく機能させることができていません。私が気付いたいくつかのことは、いくつかの詳細を提供するのに役立つかもしれません
イントラネットサイトが「信頼できる」サイトのリストに含まれていることはかなり確信しています(ネットワーク管理者によると)。
NTLM認証とNTLM認証のみを使用しています。NTLM認証を削除し、Negotiate:Kerberos認証を有効にすると、401-Unauthorizedエラーが発生します。カーネルモード認証を無効にすることでこれを修正できますが、それでもクレデンシャルプロンプトが表示されます(これは不要です)。
IE>インターネットオプション>詳細設定>セキュリティで[統合Windows認証を有効にする*]をオンにすると、資格情報の入力を求められますが、資格情報の入力が機能しなくなります。3回尋ねられたら、401エラーページに移動します。
IE9はパスワードのみを要求し、ユーザー名を取得します(良い)。ChromeとFirefoxは、ユーザー名とパスワードの入力を求めてきます。