Verarbeiten von SameSite-Cookieänderungen im Chrome-Browser
Was ist SameSite?
SameSite
ist eine Eigenschaft, die in HTTP-Cookies festgelegt werden kann, um CSRF-Angriffe (Cross Site Request Forgery) in Webanwendungen zu verhindern:
- Wenn
SameSite
auf Lax festgelegt ist, wird das Cookie in Anforderungen innerhalb derselben Website und in GET-Anforderungen von anderen Websites gesendet. Es wird nicht in domänenübergreifenden GET-Anforderungen gesendet. - Der Wert Strict stellt sicher, dass das Cookie nur in Anforderungen innerhalb derselben Website gesendet wird.
Standardmäßig ist der Wert SameSite
in Browsern NICHT festgelegt. Daher gibt es keine Einschränkungen für Cookies, die in Anforderungen gesendet werden. Eine Anwendung muss den CSRF-Schutz durch Festlegen von Lax oder Strict gemäß Ihren Anforderungen aktivieren.
Änderungen bei SameSite und Auswirkungen auf die Authentifizierung
Aktuelle Updates der SameSite-Standards schlagen den Schutz von Apps vor, indem sie das Standardverhalten von SameSite
festlegen, wenn kein Wert auf „Lax“ eingestellt ist. Diese Risikominimierung bedeutet, dass Cookies mit Ausnahme bei GET-Anforderungen von anderen Websites bei HTTP-Anforderungen eingeschränkt werden. Außerdem wird der Wert None eingeführt, um Einschränkungen für gesendete Cookies zu entfernen. Diese Updates werden in Kürze in einer kommenden Version des Chrome-Browsers veröffentlicht.
Wenn sich Web-Apps bei Microsoft Identity Platform mit dem Antwortmodus „form_post“ authentifizieren, antwortet der Anmeldeserver der Anwendung mit HTTP POST, um Token oder Authentifizierungscode zu senden. Da es sich bei dieser Anforderung um eine domänenübergreifende Anforderung handelt (von login.microsoftonline.com
zu Ihrer Domäne, z. B. https://contoso.com/auth
) unterliegen jetzt Cookies, die in Ihrer App festgelegt wurden, den neuen Regeln in Chrome. Bei den Cookies, die in websiteübergreifenden Szenarien verwendet werden müssen, handelt es sich um Cookies mit den Werten Status und Nonce, die auch in der Anmeldeanforderung gesendet werden. Es gibt auch noch andere Cookies, die von Microsoft Entra ID gelöscht werden, um die Sitzung zu speichern.
Wenn Sie Ihre Web-Apps nicht aktualisieren, führt dieses neue Verhalten zu Authentifizierungsfehlern.
Risikominimierung und Beispiele
Um Authentifizierungsfehler zu beheben, können Web-Apps, die sich bei der Microsoft Identity-Plattform authentifizieren, für Cookies, die bei der Ausführung domänenübergreifender Szenarien im Chrome-Browser verwendet werden, die SameSite
-Eigenschaft auf None
festlegen.
Andere Browser (hier finden Sie eine komplette Liste) folgen dem bisherigen Verhalten von SameSite
und beziehen die Cookies nicht ein, wenn SameSite=None
festgelegt ist.
Aus diesem Grund müssen Web-Apps zur Unterstützung der Authentifizierung auf mehreren Browsern nur für Chrome den Wert SameSite
auf None
festlegen und den Wert für andere Browser leer lassen.
Dieser Ansatz wird im folgenden Beispielcode veranschaulicht:
Die folgende Tabelle zeigt die Pull Requests, mit denen die SameSite-Änderungen in unseren ASP.NET- und ASP.NET Core-Beispielen umgangen wurden.
Ausführliche Informationen zur Behandlung von SameSite-Cookies in ASP.NET und ASP.NET Core finden Sie auch unter:
Nächste Schritte
Erfahren Sie mehr über SameSite und das Web-App-Szenario: