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
są 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.
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: