Udostępnij przez


Obsługa zmian plików cookie SameSite w przeglądarce Chrome

Co to jest sameSite?

SameSite jest właściwością, którą można ustawić w plikach cookie HTTP, aby zapobiec atakom fałszowania żądań między witrynami (CSRF) w aplikacjach internetowych.

  • Gdy SameSite jest ustawione na Lax, plik cookie jest wysyłany w żądaniach w tej samej witrynie oraz w żądaniach GET z innych witryn. Nie jest ona wysyłana w żądaniach GET, które są między domenami.
  • Wartość Strict gwarantuje, że plik cookie jest wysyłany w żądaniach tylko w obrębie tej samej witryny.

Domyślnie SameSite wartość NIE jest ustawiana w przeglądarkach i dlatego nie ma żadnych ograniczeń dotyczących plików cookie wysyłanych w żądaniach. Aplikacja musi wyrazić zgodę na ochronę CSRF, ustawiając wartość Lax lub Strict zgodnie z wymaganiami.

Zmiany SameSite i ich wpływ na uwierzytelnianie

Najnowsze aktualizacje standardów SameSite proponują ochronę aplikacji poprzez ustawienie domyślnego zachowania na Lax, gdy nie jest ustawiona żadna wartość. Ograniczenie to oznacza, że pliki cookie będą ograniczone do żądań HTTP, z wyjątkiem żądania GET pochodzącego z innych witryn. Ponadto wartość None jest wprowadzana w celu usunięcia ograniczeń dotyczących wysyłanych plików cookie. Te aktualizacje zostaną wkrótce wydane w nadchodzącej wersji przeglądarki Chrome.

Gdy aplikacje internetowe uwierzytelniają się przy użyciu Platforma tożsamości Microsoft przy użyciu trybu odpowiedzi "form_post", serwer logowania odpowiada aplikacji przy użyciu protokołu HTTP POST w celu wysyłania tokenów lub kodu uwierzytelniania. Ponieważ to żądanie jest zapytaniem między domenami (z login.microsoftonline.com do twojej domeny — na przykład https://contoso.com/auth), pliki cookie ustawione przez aplikację są teraz objęte nowymi zasadami w przeglądarce Chrome. Pliki cookie, które muszą być używane w scenariuszach obejmujących wiele witryn, to pliki cookie, które przechowują stan i nonce, które są również wysyłane w żądaniu logowania. Istnieją inne pliki cookie porzucone przez identyfikator Entra firmy Microsoft do przechowywania sesji.

Jeśli nie zaktualizujesz aplikacji internetowych, to nowe zachowanie spowoduje błędy uwierzytelniania.

Środki zaradcze i przykłady

Aby usunąć błędy uwierzytelniania, aplikacje internetowe uwierzytelniające się za pomocą platformy tożsamości Microsoft mogą ustawić właściwość SameSite na wartość None dla ciasteczek używanych w scenariuszach obejmujących wiele domen przy używaniu przeglądarki Chrome. Inne przeglądarki (zobacz tutaj pełną listę) postępują zgodnie z poprzednim zachowaniem SameSite i nie będą uwzględniać plików cookie, jeśli SameSite=None jest ustawiony. Dlatego w celu obsługi uwierzytelniania w wielu przeglądarkach aplikacje internetowe będą musiały ustawić wartość SameSite na None tylko w Chrome i pozostawić ją pustą w innych przeglądarkach.

Takie podejście przedstawiono w poniższym przykładowym kodzie.

W poniższej tabeli przedstawiono prośby o ściągnięcie, które rozwiązywały problem zmian SameSite w naszych przykładach ASP.NET i ASP.NET Core.

Przykład Żądanie ściągnięcia
Przyrostowy samouczek aplikacji sieciowej ASP.NET Core Poprawka pliku cookie tej samej witryny #261
Przykład ASP.NET aplikacji internetowej MVC Poprawka pliku cookie tej samej witryny #35
active-directory-dotnet-admin-restricted-scopes-v2 Poprawka pliku cookie tej samej witryny nr 28

Aby uzyskać szczegółowe informacje na temat obsługi plików cookie sameSite w ASP.NET i ASP.NET Core, zobacz również:

Następne kroki

Dowiedz się więcej na temat scenariusza usługi SameSite i aplikacji internetowej: