CORS-Unterstützung im Experience Cloud Identity Service. cors-support-in-the-experience-cloud-id-service
Browser verwenden Cross Origin Resource Sharing (CORS) zum Anfordern von Ressourcen von einer Domain, die nicht der aktuellen Domain entspricht. Der Experience Cloud Identity Service 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 section-6608cf46d27143eeaeabacaa6aa14e8e
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 section-76c87ec3295d447bab220c84f138c235
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. Das Auswerten einer Ressourcenanforderung wird als preflight check
bezeichnet. 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.
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//www.finance-website.com
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 section-6f44f30694c44f95bf9854b8a2af8449
In der folgenden Tabelle werden einige der Vorteile beschrieben, die CORS Kunden bietet, die den ID-Dienst verwenden.
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.
CORS hilft, die Performance 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.