CORS-Unterstützung im Experience Cloud Identity-Service.

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

Eine Same-Origin-Policy ist eine Sicherheitskontrolle oder Einschränkung, die von einem Webbrowser erzwungen wird. Wenn sie auf dieser Ebene erzwungen wird, bestimmt der Webbrowser selbst, ob eine Anforderung von Ressourcen, die von einer Seite an eine andere gesendet wird, zulässig ist oder blockiert wird. Um festzustellen, ob es sich bei einer Anforderung um eine Anforderung mit derselben Herkunft handelt, vergleicht der Browser Folgendes:

  • Uniform Resource Identifiers (URIs)
  • Hostnamen (beispielsweise http://www.meine-beispielwebsite.com)
  • Port-Nummern (beispielsweise Port 80 und 440 für HTTP- und HTTPS-Anforderungen)

Der Browser lässt eine Anforderung zu, wenn beide Seiten dieselben Eigenschaften aufweisen, und blockiert die Ressourcenanforderung, wenn dies nicht der Fall ist.

CORS behebt Probleme mit Gleiche-Herkunft-Richtlinien

Cross Origin Resource Sharing (CORS) bietet eine sichere und effektive Möglichkeit, Ressourcen über verschiedene Domänen hinweg anzufordern. Die CORS-Spezifikation enthält eine Reihe von HTTP-Headern, die Browser zum Senden, Empfangen und Auswerten von Ressourcenanforderungen verwenden. Die Evaluierung einer Ressourcenanforderung heißt preflight check. Mit dieser Prüfung können Browser und Server bestimmen, welche Anforderungen zulässig sind oder blockiert werden sollen. Die Preflight-Prüfung ist transparent für die mobile App bzw. API oder das Skript, die bzw. das eine Ressource anfordert. Zwei Header, die für den Ressourcenanforderungsprozess wichtig sind, sind:

  • 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. Die folgende Tabelle definiert, wie die CORS-Anforderungs- und Antwort-Header den Zugriff auf eine Ressource prüfen.

Aktion Beschreibung

Anfrage

Beim Laden der Seite des Finanzunternehmens stellt der Browser eine Anforderung an dpm.demdex.net. Dies ist ein Aufruf an die Domain der Datenerfassungs-Server (DCS), die vom ID-Dienst verwendet wird. Diese Domain-übergreifende Anforderung enthält den Header:

  • Herkunft:https://www.finance-website.com

Antwort

Die Antwort der DCS-Domäne enthält die folgenden Header, die der Website des Finanzunternehmens Zugriff auf die erforderlichen Ressourcen gewähren:

  • 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, um Daten anzufordern und zu übertragen. Diese Methode ist sicherer als eine JSONP-Anfrage. Sie stellt sicher, dass es keine Möglichkeit gibt, beliebigen JavaScript-Code auszuführen, der in der Antwort des DCS enthalten sein könnte. Die Payload der CORS XMLHttpRequest-Antwort wird vom JavaScript des ID-Dienstes analysiert und nicht einfach in einer Rückruffunktion 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 (Version 10 und höher), Opera und Safari unterstützt.

Leistungsverbesserungen

CORS hilft, die Leistung zu verbessern, denn:

  • Der Browser verwaltet Ressourcenanforderungen. Der Anforderungsprozess ist für den ID-Dienst transparent.
  • Im Gegensatz zu asynchronen JSONP-Anfragen werden CORS-Anforderungen vom Browser nicht depriorisiert und in eine Warteschlange gestellt.
  • Der ID-Dienst reagiert berechtigterweise. Wenn eine URL als Origin weitergegeben wird, gewährt der ID-Dienst demnach der Seite Zugriff auf die erforderlichen Ressourcen.

Auf dieser Seite