根据HTTPS方案,IdentityServer4 IDX20108无效

问题描述 投票:0回答:1

我是IdentityServer4(2.5)和证书设置的新手,请耐心等待。我认为我已竭尽所能。我在概念证明应用程序中将它与ASP.Net Core 2.2.0结合使用。我具有带有授权应用程序的OpenIdConnect和一个使用带有X509Certificate2的cookie的客户端。在我的本地计算机上运行良好;但是,当我部署到IIS时,出现此错误:

System.InvalidOperationException: IDX20803: Unable to obtain configuration from: 'https://my.com/mpauth/.well-known/openid-configuration'. ---> System.ArgumentException: IDX20108: The address specified 'http://my.com/mpauth/.well-known/openid-configuration/jwks' is not valid as per HTTPS scheme. Please specify an https address for security reasons. If you want to test with http address, set the RequireHttps property  on IDocumentRetriever to false.

问题出在这里-http://my.com/mpauth/.well-known/openid-configuration/jwks。如果将其放在浏览器中,则会出现错误;但是,如果我将http更改为https,则会得到数据。哪些设置可以控制此设置?

identityserver4 openid-connect asp.net-core-2.2 x509certificate2
1个回答
0
投票

TL; DR

[在大多数情况下,IdentityServer从传入的请求中延迟基本主机名/ URI,但是在某些部署方案中,需要通过IssuerUri和/或PublicOrigin选项as documented here对其进行强制。

更多信息

您在例外中获得的URL是发现查找的一部分。验证令牌是必要的(例如在应用程序身份验证中间件中)。应该首先向.../.well-known/openid-configuration(主要发现文档)发出请求,该请求引用其他几个URI,其中一个应该是jwks(签名密钥集)。在大多数情况下,openid-configuration中的其他URI将指向您的身份服务器使用的相同主主机名和协议方案。对于您来说,方案似乎已更改为HTTP,这在当今时代可能是不希望的。

部署的IdentityServer是否有可能位于负载均衡器/ SSL终端设备后面?这可能会导致行为。

我不确定IIS的详细信息,但可能还会有某种默认的主机名/ URI在起作用。

© www.soinside.com 2019 - 2024. All rights reserved.