Неправильное перенаправление на логин при запуске. NET Core 3.1 на Elasti c Beanstalk - PullRequest
0 голосов
/ 14 марта 2020

Я развертываю приложение. NET core 3.1 на AWS Elasti c Beanstalk.

Мой конвейер HTTPS -> ALB -> HTTP -> Instance.

Проблема, с которой я сталкиваюсь, заключается в том, что когда мне требуется аутентификация, заголовок перенаправления Location: равен http и absolute , и браузер перенаправляет неправильно.

Чтобы решить эту проблему, мне нужно:

  • Сделать относительный заголовок Location: или
  • Получить заголовок Location: равным https.

Я использую app.UseForwardedHeaders() в моем Startup.cs файл в соответствии с Настройка ASP. NET Ядро для работы с прокси-серверами и балансировщиками нагрузки , чтобы попытаться сделать его https, но все равно http.

Что нужно чтобы получить ASP. NET core Identity для работы с Elasti c Beanstalk?

1 Ответ

0 голосов
/ 14 марта 2020

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

...