IdentityServer Topics(6)- Windows身份验证

2018-06-22 15:53:48 浏览数 (1)

在支持的平台上,您可以让IdentityServer使用Windows身份验证(例如,对Active Directory)对用户进行身份验证。 当您使用以下身份托管IdentityServer时,当前Windows身份验证可用:

  • 使用Kestrel在使用IIS和IIS集成包的Windows上
  • 使用HTTP.sys服务器在Windows上

在这两种情况下,通过使用方案“Windows”在HttpContext上使用ChallengeAsync API来触发Windows身份验证。 我们的快速启动用户界面中的帐户控制器实现了必要的逻辑。

使用Kestrel

当使用Kestrel,你必须运行“后面”的IIS和IIS integration:

代码语言:javascript复制
var host = new WebHostBuilder()
    .UseKestrel()
    .UseUrls("http://localhost:5000")
    .UseContentRoot(Directory.GetCurrentDirectory())
    .UseIISIntegration()
    .UseStartup<Startup>()
    .Build();

在使用WebHost.CreateDefaultBuilder方法设置WebHostBuilder时,Kestrel会自动配置。

此外,IIS(或IIS Express)中的虚拟目录必须启用Windows和匿名身份验证。

IIS集成(IIS integration)层将配置一个Windows身份验证处理程序到DI,可以通过身份验证服务调用。 通常在IdentityServer中,建议禁用此自动行为。 这在ConfigureServices中完成:

services.Configure(iis => { iis.AuthenticationDisplayName = "Windows"; iis.AutomaticAuthentication = false; });

0 人点赞