Delen via


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/authvan 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.

Voorbeeld Pull-aanvraag
stapsgewijze zelfstudie voor ASP.NET Core-web-app Zelfde site cookie fix #261
voorbeeld van ASP.NET MVC-web-app Zelfde site cookie fix #35
active-directory-dotnet-admin-restricted-scopes-v2 Zelfde site cookie fix #28

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: