Моя проблема заключалась в конфигурации модуля Microsoft.AspNetCore.HttpOverrides
.
По умолчанию он ограничивал KnownNetworks
до 127.0.0.1
и KnownProxies
до ::1
. Поэтому, когда запрос пришел от моего ALB, он не переместил схему с X-Forwarded-For
на this.Request.Scheme
.
Проблема решается, когда я очищаю сети и прокси во время настройки, например:
services.Configure<ForwardedHeadersOptions>(options =>
{
options.ForwardedHeaders =
ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
options.KnownNetworks.Clear(); // These are key
options.KnownProxies.Clear();
});
Новое Неизвестно:
В: Безопасно ли это делать?
A: В моем случае мой экземпляр EC2 находится в частном bnet и моя группа безопасности ограничивает трафик c этим из моего ALB, поэтому я чувствую себя в безопасности. Но требуется больше исследований.