На моем сервере 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...
Кроме того, приведенный выше код взят из данная документация. Перечитывая этот раздел, можно ли оставить приведенный выше код в покое? Я предполагаю, что блокировка для определенного прокси-сервера будет лучше?