У меня есть 1 настройка сервера с IIS и nginx обратный прокси сверху и TLS на нем. Asp. net Базовое приложение и служба идентификации удостоверения личности развернуты в IIS.
Проблема заключается в том, что, судя по журналам, после успешной проверки подлинности POST-запроса, который происходит от ID-сервера к конечной точке моего приложения '/ signin-oid c', что вполне нормально, по какой-то причине есть еще один запрос GET на тот же конец вместо перенаправления на домашнюю страницу. Что сбрасывает предыдущее состояние аутентификации => пользователь не может быть аутентифицирован с ошибкой «Ошибка корреляции». Это начало происходить после того, как мы переместили настройку TLS из IIS в nginx.
2020-02-16 16:01:36.492 +03:00 [INF] Request starting HTTP/1.0 POST http://myapp.com/signin-oidc application/x-www-form-urlencoded 1771
2020-02-16 16:01:36.549 +03:00 [INF] AuthenticationScheme: Cookies signed in.
2020-02-16 16:01:36.550 +03:00 [INF] Request finished in 57.7199ms 302
2020-02-16 16:01:37.655 +03:00 [INF] Request starting HTTP/1.0 GET http://myapp.com/signin-oidc
2020-02-16 16:01:37.657 +03:00 [WRN] .AspNetCore.Correlation. state property not found.
2020-02-16 16:01:37.657 +03:00 [INF] Error from RemoteAuthentication: Correlation failed..
Вот моя конфигурация аутентификации клиентского приложения:
services.AddAuthentication(options =>
{
options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
})
.AddCookie()
.AddOpenIdConnect(options =>
{
options.SignInScheme = "Cookies";
options.Authority = Configuration["IdentityServiceUrl"];
options.RequireHttpsMetadata = !_env.IsDevelopment();
options.ClientId = "web.app";
options.SaveTokens = true;
options.Scope.Add("email");
});
После успешной проверки подлинности POST oid c middleware возвращает 302 "https://myapp.com" для перенаправления на домашнюю страницу приложения. Так что кажется, что в какой-то момент он снова превращается в «http://myapp.com/signin-oidc». Есть идеи, что я пропускаю?