統合 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) 攻撃の防止」を参照してください。