SameSite-cookiewijzigingen in Chrome-browser verwerken
Wat is SameSite?
SameSite
is een eigenschap die kan worden ingesteld in HTTP-cookies om te voorkomen dat CSRF-aanvallen (Cross Site Request Forgery) worden aangevallen in webtoepassingen:
- Wanneer
SameSite
deze is ingesteld op Lax, wordt de cookie verzonden in aanvragen binnen dezelfde site en in GET-aanvragen van andere sites. Het wordt niet verzonden in GET-aanvragen die meerdere domeinen zijn. - Een waarde van Strict zorgt ervoor dat de cookie alleen binnen dezelfde site in aanvragen wordt verzonden.
Standaard is de SameSite
waarde NIET ingesteld in browsers en daarom zijn er geen beperkingen voor cookies die in aanvragen worden verzonden. Een toepassing moet zich aanmelden voor de CSRF-beveiliging door Lax of Strict in te stellen op basis van hun vereisten.
SameSite-wijzigingen en gevolgen voor verificatie
Recente updates van de standaarden op SameSite stellen het beveiligen van apps voor door het standaardgedrag te maken van SameSite
wanneer er geen waarde is ingesteld op Lax. Deze beperking betekent dat cookies worden beperkt op HTTP-aanvragen, behalve GET die zijn gemaakt van andere sites. Daarnaast wordt een waarde van None geïntroduceerd om beperkingen voor het verzenden van cookies te verwijderen. Deze updates worden binnenkort uitgebracht in een toekomstige versie van de Chrome-browser.
Wanneer web-apps worden geverifieerd met het Microsoft Identity Platform met behulp van de antwoordmodus 'form_post', reageert de aanmeldingsserver op de toepassing met behulp van een HTTP POST om de tokens of verificatiecode te verzenden. Omdat deze aanvraag een aanvraag tussen domeinen is (bijvoorbeeld https://contoso.com/auth
van login.microsoftonline.com
naar uw domein), vallen cookies die door uw app zijn ingesteld, nu onder de nieuwe regels in Chrome. De cookies die moeten worden gebruikt in scenario's voor meerdere sites zijn cookies die de status en niet-cewaarden bevatten, die ook worden verzonden in de aanmeldingsaanvraag. Er zijn andere cookies verwijderd door Microsoft Entra ID om de sessie te houden.
Als u uw web-apps niet bijwerkt, leidt dit nieuwe gedrag tot verificatiefouten.
Risicobeperking en voorbeelden
Om de verificatiefouten te verhelpen, kunnen web-apps die worden geverifieerd met het Microsoft Identity Platform de SameSite
eigenschap None
instellen op cookies die worden gebruikt in scenario's voor meerdere domeinen wanneer ze worden uitgevoerd in de Chrome-browser.
Andere browsers (zie hier voor een volledige lijst) volgen het vorige gedrag van SameSite
en bevatten de cookies niet als SameSite=None
deze zijn ingesteld.
Daarom moeten web-apps voor verificatie in meerdere browsers de SameSite
waarde None
alleen instellen op Chrome en de waarde leeg laten in andere browsers.
Deze benadering wordt gedemonstreerd in de volgende voorbeeldcode.
De volgende tabel bevat de pull-aanvragen die hebben gewerkt rond de wijzigingen in SameSite in onze ASP.NET en ASP.NET Core-voorbeelden.
Zie ook voor meer informatie over het afhandelen van SameSite-cookies in ASP.NET en ASP.NET Core:
Volgende stappen
Meer informatie over SameSite en het scenario voor de web-app: