【问题标题】:IdentityServer4 IDX20108 invalid as per HTTPS schemeIdentityServer4 IDX20108 根据 HTTPS 方案无效
【发布时间】:2020-03-22 04:40:43
【问题描述】:

我是 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】:

    TL;DR

    在大多数情况下,IdentityServer 会延迟传入请求的基本主机名/URI,但可能存在需要通过IssuerUri 和/或PublicOrigin 选项as documented here 强制执行它的部署方案。

    更多信息

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

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

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

    【讨论】:

    • 是的,我们在负载均衡器后面。我第一次使用这个。我绝对不在堪萨斯了。边走边学。感谢您的意见。
    猜你喜欢
    • 1970-01-01
    • 2017-02-10
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    • 2010-12-14
    • 1970-01-01
    • 2019-01-30
    • 2012-04-09
    相关资源
    最近更新 更多