I browser usano Cross Origin Resource Sharing (CORS) per richiedere risorse da un dominio diverso da quello corrente. Il servizio Experience Cloud Identity supporta gli standard CORS per consentire tali richieste di risorse lato client tra origini diverse. Il servizio ID utilizza invece le richieste JSONP nei browser più datati che non supportano CORS.
I criteri per la stessa origine sono controlli di sicurezza o restrizioni applicati dal browser Web. Quando viene applicato a questo livello, il browser stesso determina se una richiesta di risorse effettuata da una pagina all’altra sarà consentita o bloccata. Per determinare se una richiesta è della stessa origine, il browser confronta:
Il browser consente una richiesta se entrambe le pagine condividono queste caratteristiche; in caso contrario, blocca le richieste di risorse.
CORS offre un modo sicuro ed efficace per richiedere risorse tra domini diversi. La specifica CORS include un set di intestazioni HTTP utilizzate dai browser per inviare, ricevere e valutare richieste di risorse. La valutazione di una richiesta di risorse è detta preflight check
. Questo controllo consente ai browser e ai server di determinare quali richieste sono consentite o bloccate. Il controllo preliminare è trasparente per l’app, l’API o lo script che richiede una risorsa. Due intestazioni importanti nel processo di richiesta delle risorse sono le seguenti:
Origin
: intestazione di richiesta che identifica l'origine di una richiesta.Access-Control-Allow-Origin
: intestazione di richiesta che indica se una risorsa può essere condivisa con il richiedente.Vediamo come funzionano queste intestazioni. In questo esempio, supponiamo che una società di servizi finanziari abbia implementato il servizio Experience Cloud ID sul suo sito, www.finance-website.com. La tabella seguente definisce il modo in cui le intestazioni di richiesta e risposta CORS verificano l’accesso a una risorsa.
Azione | Descrizione |
---|---|
Richiesta |
Al caricamento della pagina del sito della società di servizi finanziari, il browser invia una richiesta a dpm.demdex.net. Si tratta di una chiamata al dominio dei server di raccolta dati (DCS) utilizzati dal servizio ID. Questa richiesta tra domini diversi include l’intestazione:
|
Risposta |
La risposta dal dominio DCS include queste intestazioni che consentono al sito della società di servizi finanziari di accedere alle risorse richieste:
|
Vedi anche useCORSOnly.
La tabella seguente descrive alcuni dei vantaggi offerti da CORS ai clienti che utilizzano il servizio ID.
Beneficio | Descrizione |
---|---|
Maggiore sicurezza |
CORS utilizza XMLHttpRequest per richiedere e trasferire i dati. Questo metodo è più sicuro di una richiesta JSONP. In questo modo si evita di eseguire JavaScript arbitrari che potrebbero essere contenuti nella risposta del DCS. Il payload di risposta XMLHttpRequest di CORS viene analizzato dal JavaScript del servizio ID e non semplicemente eseguito in una funzione di callback.
Nota: per accettare i cookie, la proprietà withCredentials dell'oggetto XMLHttpRequest deve essere impostata su true. Questa proprietà è supportata in Chrome, Firefox, Internet Explorer (v10+), Opera e Safari. |
Miglioramenti delle prestazioni |
CORS consente di migliorare le prestazioni perché:
|