Gestire le modifiche ai cookie SameSite nel browser Chrome
Che cos'è SameSite?
SameSite
è una proprietà che può essere impostata nei cookie HTTP per evitare attacchi cross site request forgery (CSRF) nelle applicazioni Web:
- Quando
SameSite
è impostato su Lax, il cookie viene inviato nelle richieste all'interno dello stesso sito e nelle richieste GET da altri siti. Non viene inviato nelle richieste GET tra domini. - Un valore di Strict garantisce che il cookie venga inviato nelle richieste solo all'interno dello stesso sito.
Per impostazione predefinita, il valore SameSite
NON è impostato nei browser ed è per questo motivo che non esistono restrizioni sull'invio di cookie nelle richieste. Un'applicazione dovrà acconsentire esplicitamente alla protezione CSRF impostando Lax o Strict in base ai requisiti.
Modifiche SameSite e impatto sull'autenticazione
Recenti aggiornamenti agli standard in SameSite propongono di proteggere le app creando il comportamento predefinito di SameSite
quando non è impostato alcun valore su Lax. Questa mitigazione significa che i cookie saranno limitati alle richieste HTTP ad eccezione di GET effettuato da altri siti. Inoltre, viene introdotto un valore di Nessuno per rimuovere le restrizioni relative all'invio dei cookie. Questi aggiornamenti verranno presto rilasciati in una versione futura del browser Chrome.
Quando le app Web eseguono l'autenticazione con Microsoft Identity Platform usando la modalità di risposta "form_post", il server di accesso risponde all'applicazione usando un HTTP POST per inviare i token o il codice di autenticazione. Poiché questa richiesta è una richiesta tra domini (da login.microsoftonline.com
al dominio, ad esempio https://contoso.com/auth
), i cookie impostati dall'app ora rientrano nelle nuove regole in Chrome. I cookie che devono essere usati in scenari tra siti sono cookie che contengono i valori stato e nonce, che vengono inviati anche nella richiesta di accesso. Ci sono altri cookie eliminati da Microsoft Entra ID per bloccare la sessione.
Se non si aggiornano le app Web, questo nuovo comportamento comporterà errori di autenticazione.
Mitigazione ed esempi
Per superare gli errori di autenticazione, le app Web che eseguono l'autenticazione con Microsoft Identity Platform possono impostare la proprietà SameSite
su None
per i cookie usati in scenari tra domini durante l'esecuzione nel browser Chrome.
Altri browser (vedere qui per un elenco completo) seguono il comportamento precedente di SameSite
e non includeranno i cookie nel caso in cui SameSite=None
sia impostato.
Per questo motivo, per supportare l'autenticazione in più browser le app Web dovranno impostare il valore SameSite
su None
solo in Chrome e lasciare vuoto il valore in altri browser.
Questo approccio è dimostrato anche nel codice di esempio che segue.
La tabella seguente presenta le richieste pull che hanno risolto le modifiche di SameSite negli esempi di ASP.NET e ASP.NET Core.
Per informazioni dettagliate su come gestire i cookie SameSite in ASP.NET e ASP.NET Core, vedere anche:
Passaggi successivi
Ulteriori informazioni su SameSite e sullo scenario dell'app Web: