Protezione di asset della rete per la distribuzione di contenuti (CDN) di Azure con l'autenticazione basata su token
Importante
Si tratta di una funzionalità di Rete CDN di Azure Premium solo da Edgio, per configurare le regole su Rete CDN di Azure da Microsoft, usare il motore regole Standard. Le regole avanzate non sono disponibili per Rete CDN di Azure di Akamai. Per un confronto delle funzionalità della rete CDN, vedere Funzionalità del prodotto rete CDN di Azure.
Panoramica
L'autenticazione basata su token è un meccanismo che consente di impedire alla rete per la distribuzione di contenuti di Azure di gestire gli asset ai client non autorizzati. L'autenticazione basata su token viene eseguita generalmente per evitare il collegamento attivo del contenuto, in cui un altro sito Web, come ad esempio una bacheca, usa gli asset senza autorizzazione. L'hotlinking può avere un effetto sui costi di distribuzione dei contenuti. Quando si abilita l'autenticazione dei token nella rete per la distribuzione di contenuti, le richieste vengono autenticate dal server perimetrale della rete perimetrale per la distribuzione di contenuti prima che la rete per la distribuzione di contenuti fornisca il contenuto.
Funzionamento
L'autenticazione token verifica che le richieste vengano generate da un sito attendibile richiedendo alle richieste di contenere un valore di token che contiene informazioni codificate sul richiedente. Il contenuto viene distribuito a un richiedente solo se le informazioni codificate soddisfano i requisiti. In caso contrario, le richieste vengono negate. È possibile impostare i requisiti usando uno o più dei parametri seguenti:
- Paese/area geografica: consente o nega le richieste provenienti dai paesi/aree geografiche specificate dal codice paese/area geografica.
- URL: consentire solo le richieste che corrispondono all'asset o al percorso specificato.
- Host: consentire o negare le richieste che usano gli host specificati nell'intestazione della richiesta.
- Referrer: consentire o negare la richiesta dal referrer specificato.
- Indirizzo IP: consentire solo le richieste che hanno origine da un indirizzo IP o da una subnet IP specifica.
- Protocollo: consentire o negare le richieste basate sul protocollo usato per richiedere il contenuto.
- Scadenza: assegnare un periodo di data e ora per assicurare che un collegamento rimanga valido solo per un periodo di tempo limitato.
Per altre informazioni, vedere gli esempi di configurazione dettagliati per ogni parametro in Configurazione dell'autenticazione basata su token.
Importante
Se per un qualsiasi percorso in questo account è abilitata l'autorizzazione basata su token, è possibile usare solo la modalità standard-cache per la memorizzazione nella cache delle stringhe di query. Per altre informazioni, vedere Controllare il comportamento di memorizzazione nella cache di Azure rete per la distribuzione di contenuti con stringhe di query.
Architettura di riferimento
Il diagramma del flusso di lavoro seguente descrive in che modo la rete per la distribuzione di contenuti usa l'autenticazione token per lavorare con l'app Web.
Logica di convalida dei token nell'endpoint di rete per la distribuzione di contenuti
Il diagramma di flusso seguente descrive come Azure rete per la distribuzione di contenuti convalida una richiesta client quando l'autenticazione del token è configurata nell'endpoint di rete per la distribuzione di contenuti.
Configurazione dell'autenticazione basata su token
Dal portale di Azure passare al profilo di rete per la distribuzione di contenuti e quindi selezionare Gestisci per avviare il portale supplementare.
Passare il puntatore su HTTP Large (Large HTTP) e quindi selezionare Token Auth (Autenticazione token) nel riquadro a comparsa. È poi possibile impostare i parametri di crittografia e la chiave di crittografia come indicato di seguito:
Creare uno o più chiavi di crittografia. Una chiave di crittografia fa distinzione tra maiuscole e minuscole e può contenere qualsiasi combinazione di caratteri alfanumerici. Tutti gli altri tipi di caratteri, inclusi gli spazi, non sono consentiti. La lunghezza massima consentita è di 250 caratteri. Per assicurarsi che le chiavi di crittografia siano casuali, è consigliabile crearle usando lo strumento OpenSSL.
Lo strumento OpenSSL presenta la sintassi seguente:
rand -hex <key length>
Ad esempio:
OpenSSL> rand -hex 32
Per evitare tempi di inattività, creare una chiave primaria e una di backup. Quando la chiave primaria viene aggiornata, una chiave di backup garantisce l'accesso continuo ai contenuti.
Immettere una chiave di crittografia univoca nella casella Primary Key (Chiave primaria) e, facoltativamente, immettere una chiave di backup nella casella Backup Key (Chiave di backup).
Selezionare la versione minima di crittografia per ogni chiave nel relativo elenco Minimum Encryption Version (Versione minima di crittografia) e quindi selezionare Update (Aggiorna):
- V2: indica che la chiave può essere usata per generare token di versione 2.0 e 3.0. Usare questa opzione solo se si esegue la transizione da una chiave di crittografia legacy versione 2.0 a una chiave 3.0.
- V3: (impostazione consigliata) indica che la chiave può essere usata solo per generare token di versione 3.0.
Per configurare i parametri di crittografia e generare un token, usare lo strumento di crittografia. Grazie allo strumento è possibile consentire o negare le richieste in base a ora di scadenza, paese/area, referrer, protocollo e IP client (in qualsiasi combinazione). Anche se non esiste alcun limite al numero e alla combinazione di parametri che possono essere combinati per formare un token, la lunghezza totale di un token è limitata a 512 caratteri.
Immettere i valori per uno o più parametri di crittografia seguenti nella sezione Encrypt Tool (Strumento di crittografia):
Nome parametro Descrizione ec_expire Assegna un'ora di scadenza a un token, dopo la quale il token scade. Le richieste inviate dopo l'ora di scadenza verranno negate. Questo parametro usa un timestamp Unix, basato sul numero di secondi dal periodo Unix standard di '1/1/1/1970 00:00:00 GMT'. È possibile usare gli strumenti online per eseguire la conversione tra l'ora solare e l'ora Unix. Ad esempio, se si vuole che il token scada in data
12/31/2016 12:00:00 GMT
, inserire il valore del timestamp Unix1483185600
.ec_url_allow Consente di adattare i token a un particolare asset o percorso. Limita l'accesso alle richieste il cui URL inizia con un percorso relativo specifico. Gli URL distinguono tra maiuscole e minuscole. Inserire più percorsi separandoli con una virgola; non aggiungere spazi. A seconda dei requisiti, è possibile configurare valori diversi per ogni livello di accesso. Ad esempio, per l'URL
http://www.mydomain.com/pictures/city/strasbourg.png
sono consentite queste richieste per i valori di input seguenti:- Valore di input '/': tutte le richieste sono consentite.
- Valore di input '/pictures', sono consentite le richieste seguenti:
- 'http://www.mydomain.com/pictures.png'
- 'http://www.mydomain.com/pictures/city/strasbourg.png'
- 'http://www.mydomain.com/picturesnew/city/strasbourgh.png'
- Valore di input '/pictures/': sono consentite solo le richieste contenenti il percorso '/pictures/'. Ad esempio, 'http://www.mydomain.com/pictures/city/strasbourg.png'.
- Valore di input '/pictures/city/strasbourg.png': sono consentite solo le richieste per questo percorso specifico e l'asset.
ec_country_allow Consente solo le richieste che hanno origine da uno o più paesi/aree specificati. Le richieste che hanno origine da tutti gli altri paesi/aree verranno negate. Usare due lettere [codice paese/area geografica ISO 3166](/previous-versions/azure/mt761717(v=azure.100)) per ogni paese/area geografica e separare ognuno con una virgola; non aggiungere uno spazio. Ad esempio, se si vuole consentire l'accesso solo dalla Stati Uniti e dalla Francia, immettere "US,FR". ec_country_deny Respinge le richieste che hanno origine da uno o più paesi/aree specificati. Le richieste che hanno origine da tutti gli altri paesi/aree verranno consentite. L'implementazione è la stessa del parametro ec_country_allow. Se il codice di un paese/area è presente in entrambi i parametri ec_country_allow ed ec_country_deny, il parametro ec_country_allow ha la precedenza. ec_ref_allow Consente solo le richieste dal referrer specificato. Un referrer identifica l'URL della pagina Web collegata alla risorsa richiesta. Non includere il protocollo nel valore del parametro. Sono consentiti i tipi di input seguenti:
- Un nome host o un nome host e un percorso.
- Più referrer. Aggiungere più referrer separandoli con una virgola; non aggiungere uno spazio. Se si specifica un valore per il referrer, ma le informazioni sul referrer non vengono inviate nella richiesta a causa della configurazione del browser, la richiesta viene negata per impostazione predefinita.
- Richieste con informazioni sui referrer mancanti o vuote. Per impostazione predefinita, il parametro ec_ref_allow blocca questi tipi di richieste. Per consentire queste richieste, immettere il testo "missing" o inserire un valore vuoto (usando una virgola finale).
- Sottodomini. Per consentire i sottodomini, immettere un asterisco (\*). Ad esempio, per consentire tutti i sottodomini di 'contoso.com', immettere '*.contoso.com'.
Ad esempio, per consentire l'accesso per le richieste da
www.contoso.com
, tutti i sottodomini incontoso2.com
e le richieste con referrer vuoti o mancanti, inserirewww.contoso.com,*.contoso.com,missing
.ec_ref_deny Respinge le richieste dal referrer specificato. L'implementazione è la stessa del parametro ec_ref_allow. Se un referrer è presente in entrambi i parametri ec_ref_allow e ec_ref_deny, il parametro ec_ref_allow ha la precedenza. ec_proto_allow Consente solo le richieste dal protocollo specificato. I valori validi sono 'http', 'https' o 'http,https'. ec_proto_deny Respinge le richieste dal protocollo specificato. L'implementazione è la stessa del parametro ec_proto_allow. Se un protocollo è presente in entrambi i parametri ec_proto_allow e ec_proto_deny, il parametro ec_proto_allow ha la precedenza. ec_clientip Limita l'accesso all'indirizzo IP del richiedente specificato. Sono supportati sia Internet Protocol versione 4 (IPv4) che Internet Protocol versione 6 (IPv6). È possibile specificare un singolo indirizzo IP di richiesta o gli indirizzi IP associati a una subnet specifica. Ad esempio, '11.22.33.0/22' consente le richieste dagli indirizzi IP 11.22.32.1 a 11.22.35.254. Dopo aver immesso i valori dei parametri di crittografia, selezionare una chiave da crittografare (se sono state create sia una chiave primaria che una chiave di backup) dall'elenco Chiave da crittografare .
Selezionare una versione di crittografia dall'elenco Encryption Version (Versione di crittografia): V2 per la versione 2 o V3 per versione 3 (scelta consigliata).
Selezionare Encrypt (Crittografa) per generare il token.
Dopo aver generato il token, viene visualizzato nella casella Token generato. Per usare il token, aggiungerlo come stringa di query alla fine del file nel percorso dell'URL, Ad esempio:
http://www.domain.com/content.mov?a4fbc3710fd3449a7c99986b
.Facoltativamente, verificare il token con lo strumento per decrittografare in modo che sia possibile visualizzare i parametri del token. Incollare il valore del token nella casella Token to Decrypt (Token da decrittografare). Selezionare la chiave di crittografia da usare dall'elenco Key to Decrypt (Chiave da decrittografare) e quindi selezionare Decrypt (Decrittografa).
I parametri del token decrittografato vengono visualizzati nella casella Original Parameters (Parametri originali).
Facoltativamente, è possibile personalizzare il tipo di codice di risposta restituito quando viene negata una richiesta. Selezionare Abilitato, quindi selezionare il codice di risposta dall'elenco Codice di risposta. Il Nome intestazione viene impostato automaticamente su Posizione. Selezionare Save (Salva) per implementare il nuovo codice di risposta. Per alcuni codici di risposta è anche necessario immettere l'URL della pagina di errore nella casella Valore intestazione. Il codice di risposta 403 (Forbidden (Non consentito)) è selezionato per impostazione predefinita.
In HTTP Large (HTTP grande) selezionare Rules Engine (Motore regole di business). Usare il motore regole per definire i percorsi per applicare la funzionalità, abilitare la funzionalità di autenticazione del token e abilitare funzionalità aggiuntive correlate all'autenticazione del token. Per altre informazioni, vedere Informazioni di riferimento sul motore regole.
Selezionare una regola esistente o crearne una nuova per definire l'asset o il percorso per il quale applicare l'autenticazione basata su token.
Per abilitare l'autenticazione basata su token in una regola, selezionare Token Auth (Autenticazione basata su token) dall'elenco Features (Funzionalità) e fare clic su Abilitato. Selezionare Aggiorna se si sta aggiornando una regola o Aggiungi se si sta creando una regola.
Nel motore regole è anche possibile abilitare altre funzionalità correlate all'autenticazione dei token. Per abilitare le funzionalità seguenti, selezionarle dall'elenco Features (Funzionalità) e fare clic su Abilitato.
Token Auth Denial Code: Determina il tipo di risposta restituito a un utente quando viene negata una richiesta. Le regole impostate qui sostituiscono il codice di risposta impostato nella sezione Custom Denial Handling (Gestione negazione personalizzata) della pagina di autenticazione basata su token.
Token Auth Ignore URL Case (Maiuscole/minuscole dell'autenticazione token): determina se l'URL usato per convalidare il token fa distinzione tra maiuscole e minuscole.
Parametro di autenticazione del token: rinomina il parametro della stringa di query di autenticazione del token visualizzato nell'URL richiesto.
Per personalizzare il token, accedere al codice sorgente in GitHub. I linguaggi disponibili includono:
- A
- C#
- PHP
- Perl
- Java
- Python
Prezzi delle funzionalità di Azure rete per la distribuzione di contenuti e del provider
Per informazioni sulle funzionalità, vedere Funzionalità del prodotto rete per la distribuzione di contenuti di Azure. Per informazioni sui prezzi, vedere Prezzi della rete per la distribuzione di contenuti.