IdentityServer4 - 联合网关 - 配置

时间:2017-12-11 14:03:10

标签: identityserver4

我们正在努力实现以下目标

enter image description here

其中IdentityServer4是联合网关,用户使用Active Directory中的Windows身份验证登录。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

鉴于您链接的图像看起来像是来自IdentityServer4的文档,我假设您已经看过这个,但它worthagain给出了Kestral有关于这样做的文档应该足以让您入门。

这几乎是从文档中删除的,但您可以将There's a quickstart repo与IIS和IIS集成包一起使用,并使用方案" Windows&#34在HttpContext上使用ChallengeAsync API来触发Windows身份验证;。实现此逻辑的{{3}}。

使用Kestrel时,必须在IIS后面运行并使用IIS集成:

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集成层将Windows身份验证处理程序配置为DI,可以通过身份验证服务调用。通常在IdentityServer中,建议禁用此自动行为。这在ConfigureServices中完成:

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