Udostępnij za pośrednictwem


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łszerzujących żądania między witrynami (CSRF) w aplikacjach internetowych:

  • Gdy SameSite jest ustawiona na Wartość Lax, plik cookie jest wysyłany w żądaniach w ramach tej samej witryny i 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.

SameSite zmiany i wpływ na uwierzytelnianie

Najnowsze aktualizacje standardów w witrynie SameSite proponują ochronę aplikacji przez ustawienie domyślnego SameSite zachowania, gdy żadna wartość nie jest ustawiona na Wartość Lax. 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 żądaniem między domenami (na przykład z login.microsoftonline.com domeny — na przykład https://contoso.com/auth), pliki cookie ustawione przez aplikację są teraz objęte nowymi regułami 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 wartości inne niż, 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 wyeliminować błędy uwierzytelniania, aplikacje internetowe uwierzytelniające się za pomocą Platforma tożsamości Microsoft mogą ustawić SameSite właściwość na None wartość dla plików cookie używanych w scenariuszach obejmujących wiele domen podczas uruchamiania w przeglądarce Chrome. Inne przeglądarki (zobacz tutaj, aby uzyskać pełną listę) postępują zgodnie z SameSite poprzednim zachowaniem i nie będą uwzględniać plików cookie, jeśli SameSite=None ustawione. Dlatego w celu obsługi uwierzytelniania w wielu przeglądarkach aplikacje internetowe będą musiały ustawić SameSite wartość na None wartość tylko w przeglądarce Chrome i pozostawić wartość pustą w innych przeglądarkach.

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

W poniższej tabeli przedstawiono żądania ściągnięcia, które działały wokół zmian w witrynie SameSite w naszych przykładach ASP.NET i ASP.NET Core.

Przykład Żądanie ściągnięcia
Samouczek przyrostowy aplikacji internetowej platformy 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: