在我的ASP.NET Core服务器中,我已经进行转发以支持我的OpenId Connect身份验证工作流:
public void ConfigureServices(IServiceCollection services)
{
services.Configure<ForwardedHeadersOptions>(options =>
{
options.ForwardedHeaders = ForwardedHeaders.XForwardedProto | ForwardedHeaders.XForwardedFor;
// Only loopback proxies are allowed by default.
// Clear that restriction because forwarders are enabled by explicit
// configuration.
options.KnownNetworks.Clear();
options.KnownProxies.Clear();
}
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseForwardedHeaders();
}
但是,我想配置KnownProxies
(和KnownNetworks
)。有没有办法找出代理服务器的IP地址(在容器的上下文中)?配置是静态的吗?如果没有,可以自动化吗?
此外,该地址是否与主机地址相同?即将IP地址解析为host.docker.internal
会有所帮助吗?无论如何,在Linux环境中这似乎并不容易...
此外,以上代码来自this documentation。重新阅读该部分,可以保留上面的代码吗?我假设锁定到特定的代理服务器会更好?
答案 0 :(得分:1)
容器IP是临时的,并且可能会在应用重建或重新部署时发生变化。默认情况下,Dokku将在内部docker0
网络上运行您的应用程序,并且唯一可以访问容器的是在服务器本身上运行的服务,因此允许从所有网络接口进行访问都是安全的。