Uso della rete CDN di Azure con CORS

Importante

Rete CDN di Azure Standard di Microsoft (versione classica) non supporta la creazione del profilo, la nuova registrazione di domini o i certificati gestiti e ritirerà il servizio il 30 settembre 2027. Per evitare interruzioni del servizio, migrate per Frontdoor di Azure Standard o Premium. Per ulteriori informazioni, consultare il ritiro di Rete CDN di Azure Standard di Microsoft (classico).

Che cos'è CORS?

CORS (Cross Origin Resource Sharing) è una funzionalità HTTP che consente a un'applicazione Web in esecuzione in un dominio di accedere alle risorse in un altro dominio. Per ridurre il rischio di attacchi tramite script da altri siti, tutti i Web browser moderni implementano una restrizione di sicurezza nota come regola della stessa origine. Tale restrizione impedisce a una pagina Web di chiamare le API in un dominio diverso. CORS offre un modo sicuro per consentire a una origine, ovvero il dominio di origine, di chiamare le API in un'altra origine.

Funzionamento

Esistono due tipi di richieste CORS, le richieste semplici e le richieste complesse.

Per le richieste semplici:

  1. Il browser invia la richiesta CORS con un'ulteriore intestazione della richiesta HTTP Origin. Il valore dell'intestazione della richiesta è l'origine che ha servito la pagina padre, definita come la combinazione di protocollo, dominio e porta. Quando una pagina da HTTPS://www.contoso.com tenta di accedere ai dati di un utente all'origine fabrikam.com, verrebbe inviata la seguente intestazione di richiesta a fabrikam.com:

    Origin: https://www.contoso.com

  2. Il server potrebbe rispondere con una delle intestazioni seguenti:

    • Un'intestazione Access-Control-Allow-Origin presente nella risposta, per indicare il sito di origine consentito. Ad esempio:

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

    • Un codice di errore HTTP, ad esempio 403, se il server non consente la richiesta multiorigine dopo il controllo dell'intestazione Origin

    • Un'intestazione Access-Control-Allow-Origin con un carattere universale che consente tutte le origine:

      Access-Control-Allow-Origin: *

Per le richieste complesse:

Una richiesta complessa è una richiesta CORS in cui il browser deve inviare una richiesta preliminare, ovvero una sonda preliminare, prima di inviare la richiesta CORS effettiva. La richiesta preliminare chiede l'autorizzazione del server perché la richiesta CORS originale possa procedere e si tratta di una richiesta OPTIONS allo stesso URL.

Suggerimento

Per altre informazioni sui flussi CORS e i problemi comuni, vedere Guide to CORS for REST APIs (Guida di CORS per le API REST).

Scenari con caratteri jolly o origine singola

CORS su Rete CDN di Azure funziona automaticamente senza configurazioni aggiuntive quando l'header Access-Control-Allow-Origin è impostato su * (asterisco) o su una singola origine. La rete CDN memorizza nella cache la prima risposta e le richieste successive usano la stessa intestazione.

Se sono già state effettuate richieste alla rete CDN prima che la funzionalità CORS venga impostata sulla tua origine, è necessario eliminare il contenuto sull'endpoint per ricaricare il contenuto con l'intestazione Access-Control-Allow-Origin.