統合 Windows 認証
作成者: Mike Wasson
統合 Windows 認証を使用すると、Kerberos または NTLM を使用して自分の Windows 資格情報でログインできます。 クライアントは Authorization ヘッダーで資格情報を送信します。 Windows 認証は、イントラネット環境に最適です。 詳細については、Windows 認証に関する記事を参照してください。
長所 | 短所 |
---|---|
IIS に組み込まれています。 | インターネット アプリケーションには推奨されません。 |
要求でユーザー資格情報を送信しません。 | クライアントで Kerberos または NTLM のサポートが必要です。 |
クライアント コンピューターがドメイン (イントラネット アプリケーションなど) に属している場合、ユーザーは資格情報を入力する必要はありません。 | クライアントは Active Directory ドメインに存在する必要があります。 |
Note
アプリケーションが Azure でホストされていて、オンプレミスの Active Directory ドメインがある場合は、オンプレミス AD と Azure Active Directory のフェデレーションを検討してください。 そうすることで、ユーザーはオンプレミスの資格情報でログインできますが、認証は Azure AD によって実行されます。 詳細については、「Azure 認証」を参照してください。
統合 Windows 認証を使用するアプリケーションを作成するには、MVC 4 プロジェクト ウィザードで "イントラネット アプリケーション" テンプレートを選択します。 このプロジェクト テンプレートは、Web.config ファイルに次の設定を配置します。
<system.web>
<authentication mode="Windows" />
</system.web>
クライアント側では、統合 Windows 認証は、ほとんどの主要なブラウザーを含む Negotiate 認証スキームをサポートする任意のブラウザーで動作します。 .NET クライアント アプリケーションの場合、HttpClient クラスは Windows 認証をサポートします。
HttpClientHandler handler = new HttpClientHandler()
{
UseDefaultCredentials = true
};
HttpClient client = new HttpClient(handler);
Windows 認証は、クロスサイト リクエスト フォージェリ (CSRF) 攻撃に対して脆弱です。 「クロスサイト リクエスト フォージェリ (CSRF) 攻撃の防止」を参照してください。