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に表示されません。外部プロバイダの自動検出に頼っている場合は、表示名を設定する必要があります。