Identity Server 4 发现文档中的非 HTTPS URL
Non HTTPS URL in Identity Server 4 Discovery Document
我在 IIS 上托管了 IdentityServer4。端点 URL 使用 HTTP 而不是 HTTPS。
我已经尝试过 forwardheaders 方法。但似乎没有任何作用。我们有 SSL 卸载。是这个原因吗?有什么不同的解决方案吗?
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});
在旧版本 (< 4.0) 中,可以设置 IdentityServerOptions.PublicOrigin
包括一个固定方案(因为有些人似乎很难让转发的 headers 工作)。我什至在一个较旧的项目中也使用过它。
对于较新的版本 (4.x+)
如果您确定它将是 https 并且您确定 public 域是什么,您可以关注 this issue on Github。至少有优惠:
app.Use(async (ctx, next) =>
{
ctx.SetIdentityServerOrigin("https://yourdomain.com");
//ctx.Request.Scheme = "https"; // direct approach
await next();
});
根据问题中给出的信息,这应该也是如此。
我在 IIS 上托管了 IdentityServer4。端点 URL 使用 HTTP 而不是 HTTPS。
我已经尝试过 forwardheaders 方法。但似乎没有任何作用。我们有 SSL 卸载。是这个原因吗?有什么不同的解决方案吗?
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});
在旧版本 (< 4.0) 中,可以设置 IdentityServerOptions.PublicOrigin
包括一个固定方案(因为有些人似乎很难让转发的 headers 工作)。我什至在一个较旧的项目中也使用过它。
对于较新的版本 (4.x+)
如果您确定它将是 https 并且您确定 public 域是什么,您可以关注 this issue on Github。至少有优惠:
app.Use(async (ctx, next) =>
{
ctx.SetIdentityServerOrigin("https://yourdomain.com");
//ctx.Request.Scheme = "https"; // direct approach
await next();
});
根据问题中给出的信息,这应该也是如此。