Hantera SameSite-cookieändringar i webbläsaren Chrome
Vad är SameSite?
SameSite
är en egenskap som kan anges i HTTP-cookies för att förhindra csrf-attacker (Cross Site Request Forgery) i webbprogram:
- När
SameSite
är inställt på Lax skickas cookien i begäranden på samma webbplats och i GET-begäranden från andra webbplatser. Det skickas inte i GET-begäranden som är korsdomäner. - Värdet Strikt säkerställer att cookien endast skickas i begäranden på samma webbplats.
Som standard SameSite
anges värdet INTE i webbläsare och det är därför det inte finns några begränsningar för cookies som skickas i begäranden. Ett program skulle behöva anmäla sig till CSRF-skyddet genom att ange Lax eller Strict enligt deras krav.
SameSite-ändringar och påverkan på autentisering
De senaste uppdateringarna av SameSite
standarderna på SameSite föreslår att du skyddar appar genom att göra standardbeteendet för när inget värde har angetts till Lax. Den här begränsningen innebär att cookies begränsas på HTTP-begäranden förutom GET som görs från andra webbplatser. Dessutom introduceras värdet None för att ta bort begränsningar för cookies som skickas. Dessa uppdateringar kommer snart att släppas i en kommande version av Webbläsaren Chrome.
När webbappar autentiseras med Microsofts identitetsplattform med svarsläget "form_post" svarar inloggningsservern på programmet med hjälp av ett HTTP POST för att skicka token eller autentiseringskod. Eftersom den här begäran är en begäran mellan domäner (från login.microsoftonline.com
till exempel https://contoso.com/auth
din domän) omfattas cookies som har angetts av din app nu under de nya reglerna i Chrome. Cookies som måste användas i scenarier mellan webbplatser är cookies som innehåller värden för tillstånd och nonce , som också skickas i inloggningsbegäran. Det finns andra cookies som släppts av Microsoft Entra-ID för att hålla sessionen.
Om du inte uppdaterar dina webbappar resulterar det här nya beteendet i autentiseringsfel.
Åtgärd och exempel
För att lösa autentiseringsfelen kan webbappar som autentiserar med Microsofts identitetsplattform ange SameSite
egenskapen till None
för cookies som används i scenarier mellan domäner när de körs i Webbläsaren Chrome.
Andra webbläsare (se här för en fullständig lista) följer det tidigare beteendet SameSite
för och inkluderar inte cookies om SameSite=None
de har angetts.
Därför måste webbappar för att stödja autentisering i flera webbläsare ange SameSite
värdet till None
endast i Chrome och lämna värdet tomt i andra webbläsare.
Den här metoden visas i följande exempelkod.
I följande tabell visas pull-begäranden som fungerade kring SameSite-ändringarna i våra ASP.NET- och ASP.NET Core-exempel.
Mer information om hur du hanterar SameSite-cookies i ASP.NET och ASP.NET Core finns också:
Nästa steg
Läs mer om SameSite och webbappscenariot: