IdentityServer4 на docker не работает в chrome после обновления. net core v2.1.13 до v2.1.16 - PullRequest
0 голосов
/ 06 марта 2020

У меня есть приложение, которое хорошо работало с использованием. net core v2.1.13. После обновления до версии v2.1.16 некоторые машины, на которых запущен google chrome, не могут создать .AspNetCore.Correlation.oid c cook ie

после входа пользователя в систему он перенаправляется на https: / // signin-oid c, где ошибка

System.Exception: An error was encountered while handling the remote login.
 ---> System.Exception: Correlation failed.
   --- End of inner exception stack trace ---
   at Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler`1.HandleRequestAsync()
   at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Diagnostics.StatusCodePagesMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

. Ошибка может быть воспроизведена на серии компьютеров с последней версией Google chrome. но он работает, если используется в других браузерах, таких как firefox, Opera, Edge и т. д. c.

1 Ответ

1 голос
/ 12 марта 2020

У меня была такая же проблема, начиная с начала месяца, я безуспешно искал проблемы на github и потоках в stackoverflow, пока не наткнулся на это:

https://devblogs.microsoft.com/aspnet/upcoming-samesite-cookie-changes-in-asp-net-and-asp-net-core/

Похоже, Chrome меняет стандарт свойства «SameSite» файлов cookie, чтобы принудительно установить его в «Lax», если я правильно понимаю. По умолчанию, когда промежуточное программное обеспечение OID C генерирует свои cookie-файлы корреляции ie (и nonce), оно устанавливает для свойства SameSite значение «Нет». Вот что я сделал в своей конфигурации:

.AddOpenIdConnect(options =>
{
    // Other lines were omitted, only these two are useful to fix your problem

    options.NonceCookie.SameSite = SameSiteMode.Lax
    options.CorrelationCookie.SameSite = SameSiteMode.Lax

});

Я не знаю, как это влияет на поведение в других браузерах ... Я протестировал после этого в Chrome, Firefox и Edge с без вопросов. Кто-то может исправить меня, если у него есть какие-либо побочные эффекты, о которых я не знаю.

РЕДАКТИРОВАТЬ: Моя проблема, кажется, была решена сама собой, я попытался сегодня в версии без исправления, с флаг явно включается в chrome: // flags, и проблема больше не возникает.

...