欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

第23章 Windows身份验证 - Identity Server 4 中文文档(v1.0.0)

程序员文章站 2022-05-21 17:34:37
在支持的平台上,您可以使用IdentityServer使用Windows身份验证对用户进行身份验证(例如,针对Active Directory)。当前使用以下命令托管IdentityServer时,Windows身份验证可用: "Kestrel" 在Windows上使用IIS和IIS集成包 Wind ......

在支持的平台上,您可以使用identityserver使用windows身份验证对用户进行身份验证(例如,针对active directory)。当前使用以下命令托管identityserver时,windows身份验证可用:

  • kestrel在windows上使用iis和iis集成包
  • windows上的http.sys服务器

在这两种情况下,使用方案“windows”httpcontext上使用challengeasync api来触发windows身份验证。我们的快速入门ui中的帐户控制器实现了必要的逻辑。

23.1 使用 kestrel

使用kestrel时,必须运行“behind”iis并使用iis集成:

var host = new webhostbuilder()
    .usekestrel()
    .useurls("http://localhost:5000")
    .usecontentroot(directory.getcurrentdirectory())
    .useiisintegration()
    .usestartup<startup>()
    .build();

使用该webhost.createdefaultbuilder方法设置时,会自动配置webhostbuilder

iis(或iis express)中的虚拟目录也必须启用windows并启用匿名身份验证。

iis集成层将windows身份验证处理程序配置为di,可以通过身份验证服务调用。通常在identityserver中,建议禁用此自动行为。这是在configureservices

services.configure<iisoptions>(iis =>
{
    iis.authenticationdisplayname = "windows";
    iis.automaticauthentication = false;
});

注意
默认情况下,显示名称为空,windows身份验证按钮不会显示在快速入门ui中。如果依赖于自动发现外部提供程序,则需要设置显示名称。

github地址