.net core 2.2 с openidconnect и перенаправленными заголовками не работают - PullRequest
0 голосов
/ 14 января 2019

У меня был сайт .net core 2.1, работающий в Azure в качестве службы приложений, расположенный за шлюзом приложений. При авторизации пользователя запрос к серверу идентификации содержал правильный URI перенаправления для публично размещенного URL. Это работало со следующей конфигурацией ... с удаленными линиями, чтобы сделать его короче.

    public void ConfigureServices(IServiceCollection services)
    {

        services.Configure<ForwardedHeadersOptions>(options =>
        {
            options.ForwardedHostHeaderName = "X-ORIGINAL-HOST";
            options.ForwardedHeaders = ForwardedHeaders.XForwardedHost | ForwardedHeaders.XForwardedProto | ForwardedHeaders.XForwardedFor;
        });
     ...
     }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {

        app.UseForwardedHeaders();
      ....
     }

Однако, когда я обновил приложение до .net 2.2, такая же конфигурация не работает. Я подтвердил, что заголовки для хоста от шлюза приложения присутствуют, однако часть промежуточного программного обеспечения openidconnect не выбирает правильное имя хоста для URI перенаправления, вместо этого она выбирает хост для службы приложения.

Единственный способ, которым я смог обойти это, это следующий фрагмент, добавленный в конфигурацию openidconnect ...

                options.Events = new OpenIdConnectEvents
            {
                OnRedirectToIdentityProvider = context =>
                {
                    context.ProtocolMessage.RedirectUri = Configuration["IDENTITYSRV-WEB:REDIRECTURI"];

                    return Task.CompletedTask;
                },
          }

Что мне говорит, что что-то не работает должным образом. Кто-нибудь еще испытывал это? Это известная ошибка? Это достаточное решение для этой проблемы или есть другие варианты?

UPDATE: Я только что создал пример приложения в .net core 2.1 с тем же кодом и не столкнулся с проблемой, отмеченной выше. Так что это определенно проблема .net core 2.2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...