Freigeben über


Verwendung von Azure Front Door Standard/Premium mit Cross-Origin Resource Sharing (CORS)

Gilt für: ✔️ Front Door Standard ✔️ Front Door Premium

Was ist CORS?

CORS (Cross Origin Resource Sharing; Ressourcenfreigabe zwischen verschiedenen Ursprüngen) ist eine HTTP-Funktion, die einer Webanwendung, die in einer Domäne ausgeführt wird, den Zugriff auf Ressourcen in einer anderen Domäne ermöglicht. Alle modernen Webbrowser implementieren eine Sicherheitseinschränkung, die als Same Origin Policy bezeichnet wird, um die Möglichkeiten für Cross-Site Scripting-Angriffe zu verringern. Dies hindert eine Website daran, APIs in einer anderen Domäne aufzurufen. CORS bietet eine sichere Methode, um einem Ursprung (der Ursprungsdomäne) das Aufrufen von APIs in einem anderen Ursprung zu ermöglichen.

Funktionsweise

Es gibt zwei Arten von CORS-Anforderungen: einfache Anforderungen und komplexe Anforderungen.

Für einfache Anforderungen gilt Folgendes:

  1. Der Browser sendet die CORS-Anforderung mit einem zusätzlichen Origin-HTTP-Anforderungsheader. Der Wert dieses Headers ist der Ursprung, der die übergeordneten Seite bereitgestellt hat. Dabei handelt es sich um eine Kombination aus Protokoll, Domäne und Port. Wenn eine Seite aus https://www.contoso.com versucht, auf die Benutzerdaten im Ursprung fabrikam.com zuzugreifen, wird der folgende Anforderungsheader an fabrikam.com gesendet:

    Origin: https://www.contoso.com

  2. Der Server reagiert kann mit einer der folgenden Antworten reagieren:

    • Mit einem Access-Control-Allow-Origin-Header in der Antwort, der die zulässige Ursprungswebsites angibt. Beispiele:

      Access-Control-Allow-Origin: https://www.contoso.com

    • Mit einem HTTP-Fehlercode (z. B. 403), falls der Server die ursprungsübergreifende Anforderung nach der Überprüfung des Origin-Headers nicht zulässt.

    • Mit einem Access-Control-Allow-Origin-Header mit einem Platzhalter, der alle Ursprünge zulässt:

      Access-Control-Allow-Origin: *

Für komplexe Anforderungen gilt Folgendes:

Eine komplexe-Anforderung ist eine CORS-Anforderung, bei der der Browser vor dem Senden der eigentlichen CORS-Anforderung eine Preflight-Anforderung (also einen Vorabtest) senden muss. Die Preflight-Anforderung ist eine OPTIONS-Anforderung an die gleiche URL und fordert vom Server eine Berechtigung zum Ausführen der ursprünglichen CORS-Anforderung an.

Tipp

Weitere Informationen zu CORS-Abläufen und häufigen Problemen finden Sie im CORS-Leitfaden für REST-APIs.

Platzhalter oder Szenarien mit nur einem Ursprung

CORS für Azure Front Door funktioniert automatisch ohne zusätzliche Konfiguration, wenn der Access-Control-Allow-Origin-Header auf Platzhalter (*) oder einen einzelnen Ursprung festgelegt ist. Azure Front Door führt eine Zwischenspeicherung der ersten Antwort aus, und nachfolgende Anforderungen verwenden den gleichen Header.

Wenn Anforderungen schon an Azure Front Door gesendet wurden, bevor CORS auf den Ursprung festgelegt wurde, müssen Sie den Inhalt im Inhalt Ihres Endgeräts entfernen, um den Inhalt mit dem Access-Control-Allow-Origin-Header erneut zu laden.

Szenarien mit mehreren Ursprüngen

Wenn Sie eine bestimmte Liste von Ursprüngen für CORS zulassen müssen, wird es etwas komplizierter. Das Problem tritt auf, wenn CDN den Access-Control-Allow-Origin -Header für den ersten CORS-Ursprung zwischenspeichert. Bei einer weiteren Anforderung durch einen anderen CORS-Ursprung stellt das CDN den zwischengespeicherten Access-Control-Allow-Origin-Header bereit, dieser stimmt jedoch nicht überein. Es gibt mehrere Möglichkeiten, dieses Problem zu korrigieren.

Azure Front Door-Regelsatz

Sei können in Azure Front Door im Azure Front Door-Regelsatz eine Regel erstellen, um den Origin-Header in der Anforderung zu überprüfen. Wenn es sich hierbei um einen gültigen Ursprung handelt, legt die Regel den Access-Control-Allow-Origin-Header auf den richtigen Wert fest. In diesem Fall wird der Access-Control-Allow-Origin-Header des Ursprungsservers der Datei ignoriert, und die Regel-Engine von AFD verwaltet vollständig die zulässigen CORS-Ursprünge.

Screenshot: Beispiel für Regeln mit Regelsatz

Tipp

Sie können Ihrer Regel zusätzliche Aktionen hinzufügen, um zusätzliche Antwortheader zu ändern, z. B. Access-Control-Allow-Methods.

Nächste Schritte