Show Menu
TOPICS×

CORS-Unterstützung im Experience Cloud Identity-Dienst

Browser verwenden Cross Origin Resource Sharing (CORS) zum Anfordern von Ressourcen von einer Domäne, die nicht der aktuellen Domäne entspricht. Der Experience Cloud Identity-Dienst unterstützt CORS-Standards, die diese clientseitigen, ursprungsübergreifenden Ressourcenanforderungen ermöglichen. Der ID-Dienst greift bei älteren Browsern oder Browsern ohne CORS-Unterstützung auf JSONP-Anforderungen zurück.

Probleme mit Gleiche-Herkunft-Richtlinien und ID-Dienstanforderungen

Bei Gleiche-Herkunft-Richtlinien handelt es sich um durch einen Webbrowser erzwungene Sicherheitskontrollen oder Einschränkungen. Bei der Erzwingung auf dieser Ebene bestimmt der Webbrowser selbst, ob eine Anforderung für Ressourcen, die von einer Seite zur nächsten gestellt wurde, erlaubt oder blockiert wird. Um zu bestimmen, ob es sich bei einer Anforderung um eine Gleiche-Herkunft-Anforderung handelt, vergleicht der Browser Folgendes:
  • Einheitlicher Bezeichner für Ressourcen (Uniform Resource Identifiers, URIs)
  • Hostnamen (z. B. http://www.meine-webseite-beispiel.com)
  • Portnummern (z. B. Port 80 und 440 für HTTP- und HTTPS-Anforderungen)
Der Browser erlaubt eine erfolgreiche Anforderung, wenn beide Seiten über dieselben Merkmale verfügen, und blockiert Ressourcenanforderungen, wenn dies nicht der Fall ist.

CORS behebt Probleme mit Gleiche-Herkunft-Richtlinien

CORS bietet eine sichere, effektive Möglichkeit, Ressourcen domänenübergreifend anzufordern. Die CORS-Spezifikation enthält eine Reihe von HTTP-Headern, die von Browsern zum Senden, Empfangen und Evaluieren von Ressourcenanforderungen verwendet werden. Die Evaluierung einer Ressourcenanforderung heißt
preflight check
. In dieser Prüfung können Browser und Server bestimmen, welche Anforderungen zulässig sind oder blockiert werden. Der Preflight-Check ist für die Anwendung, die API oder das Skript transparent, die bzw. das eine Ressource anfordert. Zwei im Ressourcenanforderungsprozess wichtige Header umfassen:
  • Origin
    : Ein Anforderungsheader, der die Anforderungsquelle ermittelt.
  • Access-Control-Allow-Origin
    : Ein Antwortheader, der angibt, ob eine Ressource für den Anforderer freigegeben werden kann.
Im Folgenden wird die Funktionsweise dieser Header erläutert. Angenommen, ein Finanzdienstleistungsunternehmen hat den Experience Cloud ID-Dienst auf der eigenen Site www.finance-website.com implementiert. In der folgenden Tabelle wird definiert, wie die CORS-Anforderungs- und -Antwortheader die Prüfung auf den Zugriff auf eine Ressource vornehmen.
Aktion
Beschreibung
Anforderung
Beim Laden der Seite des Finanzunternehmens stellt der Browser eine Anforderung an
dpm.demdex.net
. Hierbei handelt es sich um einen Aufruf der durch den ID-Dienst verwendeten Domäne der Datenerfassungsserver (DCS). Diese domänenübergreifende Anforderung enthält den Header:
  • Origin: https://www.finance-website.com
Antwort
Die Antwort von der DCS-Domäne enthält diese Header, durch das das Finanzunternehmen Sitezugriff auf die erforderlichen Ressourcen erhält:
  • Access-Control-Allow-Origin: https://www.finance-website.com
  • Access-Control-Allow-Credentials: true
Siehe auch useCORSOnly .

Weitere Vorteile der Verwendung von CORS

In der folgenden Tabelle werden einige der Vorteile beschrieben, die CORS Kunden bietet, die den ID-Dienst verwenden.
Vorteil
Beschreibung
Erhöhte Sicherheit
CORS verwendet XMLHttpRequest zum Anfordern und Übertragen von Daten. Diese Methode ist sicherer als eine JSONP-Anforderung. Sie gewährleistet, dass es keine Möglichkeit gibt, willkürliche JavaScript-Elemente auszuführen, die möglicherweise in der Antwort vom DCS enthalten sind. Die CORS-XMLHttpRequest-Antwortnutzlast wird durch das ID-Dienst-JavaScript-Element analysiert und nicht einfach in einer Callback-Funktion ausgeführt.
Hinweis: Zum Akzeptieren von Cookies muss die Eigenschaft
withCredentials
des Objekts
XMLHttpRequest
auf
true
festgelegt sein. Diese Eigenschaft wird in Chrome, Firefox, Internet Explorer (v10+), Opera und Safari unterstützt.
Leistungsverbesserungen
CORS hilft aus den folgenden Gründen bei der Leistungsverbesserung:
  • Der Browser verwaltet Ressourcenanforderungen. Der Anforderungsprozess ist transparent für den ID-Dienst.
  • Im Gegensatz zu asynchronen JSONP-Anforderungen hebt der Browser weder die Priorisierung von CORS-Anforderung auf, noch setzt er sie in die Warteschlange.
  • Der ID-Dienst reagiert tolerant. Wenn eine URL als
    Origin
    weitergegeben wird, gewährt der ID-Dienst demnach der Seite Zugriff auf die erforderlichen Ressourcen.