ndo*_*oes 2 c# iis reverse-proxy asp.net-core identityserver4
我们正在尝试在反向代理后面部署 IdentityServer4。发现文档返回本地 url,例如
https://xxx.local/connect/token
Run Code Online (Sandbox Code Playgroud)
我们需要的地方
https://xxx.domain.com/connect/token
Run Code Online (Sandbox Code Playgroud)
IdentityServer文档将我们指向这个github 页面。但是,当我们按照描述配置中间件时,我们看不到任何变化。
var options = new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
};
options.KnownNetworks.Clear();
options.KnownProxies.Clear();
app.UseForwardedHeaders(options);
Run Code Online (Sandbox Code Playgroud)
在此github 页面上可以找到类似的设置。提出的解决方案使用 nginx,所以可能我们的 iis 配置是关闭的。
在代理的 IIS 中:
<serverVariables>
<set name="HTTP_X_ORIGINAL_REMOTE_ADDR" value="{REMOTE_ADDR}" />
<set name="HTTP_X_FORWARDED_PROTO" value="https" />
</serverVariables>
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激。
在您启动 IDS 的 IDS 启动内部尝试以下代码
var builder = services.AddIdentityServer(options =>
{
...
options.PublicOrigin = "https://domainName.com";// <= try adding this!
...
})
Run Code Online (Sandbox Code Playgroud)
这将强制您的发现端点成为您的公共 IP。让我知道这是否有效。一世
2020 年更新 (IdentityServer4 v4.x):PublicOrigin属性已删除。
请参阅: https: //github.com/IdentityServer/IdentityServer4/issues/4535
| 归档时间: |
|
| 查看次数: |
3249 次 |
| 最近记录: |