Windows認証¶
サポートされているプラットフォームでは、Windows認証(Active Directoryなど)を使用してIdentityServerを使用してユーザーを認証できます。現在、Windows認証は、IdentityServerを次の方法でホストする場合に使用できます。
- IISとIIS統合パッケージを使用するWindows上のKestrel
- Windows上のHTTP.sysサーバー
いずれの場合も、スキームChallengeAsyncのHttpContext使用でAPIを使用することによってWindows認証がトリガーされます"Windows"。クイックスタートUIのアカウントコントローラには、必要なロジックが実装されています。
Kestrelの使用¶
Kestrelを使用する場合は、IISの背後で実行し、IIS統合を使用する必要があります。
var host = new WebHostBuilder()
.UseKestrel()
.UseUrls("http://localhost:5000")
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
KestrelはWebHost.CreateDefaultBuilder、設定方法を使用するときに自動的に設定されますWebHostBuilder。
また、IIS(またはIIS Express)の仮想ディレクトリでWindowsと匿名認証を有効にする必要があります。
IIS統合レイヤーは、Windows認証ハンドラーをDIに構成し、認証サービスを介して呼び出すことができます。通常、IdentityServerではこの自動動作を無効にすることをお勧めします。これは以下で行われConfigureServicesます:
services.Configure<IISOptions>(iis =>
{
iis.AuthenticationDisplayName = "Windows";
iis.AutomaticAuthentication = false;
});
注釈
既定では、表示名は空白で、Windows認証ボタンはクイックスタートUIに表示されません。外部プロバイダの自動検出に頼っている場合は、表示名を設定する必要があります。