Questa guida spiega come creare una firma e i campi obbligatori e facoltativi per le firme.
Per creare una firma, componi una stringa da firmare, che in questa guida chiamiamo valore firmato. Il valore firmato include parametri che descrivono i contenuti che stai proteggendo, il tempo di scadenza del valore firmato e così via.
Utilizzi il valore firmato durante la creazione di una stringa di firma. Crei una stringa di firma componendo i parametri della firma, ad esempio una firma Ed25519 con chiave asimmetrica del valore firmato.
Media CDN utilizza la firma composta finale per proteggere i tuoi contenuti.
Formati di firma supportati
Media CDN supporta i seguenti formati di richieste firmate.
| Formato | Comportamento | Esempio |
|---|---|---|
| Parametri di query (URL esatto) |
URL esatto, per concedere l'accesso a un URL specifico. |
Esatto:
|
| Parametri di query (prefisso URL) |
Se specifichi un URLPrefix, puoi firmare un prefisso e aggiungere
gli stessi parametri di ricerca a più URL all'interno del player o della generazione del manifest.
|
Cosa firmare:
Sostituisci |
| Componente percorso |
Prefisso: consente l'accesso a qualsiasi URL con un prefisso prima del
In questo modo, gli URL dei manifest relativi ereditano automaticamente il componente dell'URL firmato quando vengono recuperate le risorse secondarie. |
https://media.example.com/video/edge-cache-token=Expires=EXPIRATION
|
| Cookie firmato | Prefisso: il cookie consente l'accesso a qualsiasi URL con il prefisso specificato
nel valore URLPrefix firmato.
|
Edge-Cache-Cookie:
|
Crea una firma
Crea un valore firmato concatenando una stringa che contiene i campi di firma obbligatori e i campi di firma facoltativi desiderati.
Se specificato,
URLPrefixdeve essere il primo, seguito daExpires,KeyNamee poi da eventuali parametri facoltativi.Separa ogni campo e ogni parametro con quanto segue:
- Per i cookie, utilizza un carattere due punti
:. - Per parametri di ricerca e i componenti del percorso, utilizza un carattere e commerciale
&.
- Per i cookie, utilizza un carattere due punti
Firma il valore firmato con una firma Ed25519.
Aggiungi un separatore di campi (
:o&), seguito daSignature=e dalla firma Ed25519 alla fine della stringa.
Crea un URL firmato
I seguenti esempi di codice mostrano come creare in modo programmatico un URL firmato.
Go
Per eseguire l'autenticazione in Media CDN, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per eseguire l'autenticazione in Media CDN, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Crea un prefisso URL firmato
I seguenti esempi di codice mostrano come creare in modo programmatico un prefisso URL firmato.
Go
Per eseguire l'autenticazione in Media CDN, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per eseguire l'autenticazione in Media CDN, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Crea un cookie URL firmato
I seguenti esempi di codice mostrano come creare in modo programmatico un cookie URL firmato.
Go
Per eseguire l'autenticazione in Media CDN, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per eseguire l'autenticazione in Media CDN, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Crea un componente percorso firmato
I seguenti esempi di codice mostrano come creare in modo programmatico un componente percorso firmato.
Python
Per eseguire l'autenticazione in Media CDN, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Campi di firma obbligatori
I seguenti campi sono obbligatori per ogni firma:
ExpiresKeyNameSignature
Se sono presenti parametri di ricerca, devono essere raggruppati come ultimi parametri nell'URL. Se non diversamente specificato, i nomi dei parametri e i relativi valori fanno distinzione tra maiuscole e minuscole.
La tabella seguente spiega ogni parametro:
| Nome campo | Parametri della firma | Valore firmato |
|---|---|---|
Expires |
Secondi interi trascorsi dall'epoca Unix (1970-01-01T00:00:00Z) | Expires=EXPIRATION_TIME, dopo il quale la
firma non è più valida. |
KeyName |
Il nome di EdgeCacheKeyset utilizzato per firmare questa
richiesta. KeyName si riferisce all'intero keyset, non
singole chiavi all'interno del keyset stesso.
|
KeyName=EDGE_CACHE_KEYSET |
Signature |
Una versione con codifica base64 della firma. | Non applicabile |
Campi di firma facoltativi
Se sono presenti parametri di ricerca, devono essere raggruppati come ultimi parametri nell'URL. Se non diversamente specificato, i nomi dei parametri e i relativi valori fanno distinzione tra maiuscole e minuscole.
La tabella seguente spiega il nome e i dettagli di ogni parametro per i parametri di firma facoltativi:
| Nome campo | Parametri della firma | Valore firmato |
|---|---|---|
HeaderName |
Il nome di un campo di intestazione della richiesta denominato che deve essere presente nella richiesta. Deve essere in minuscolo quando viene firmato perché i nomi dei campi di intestazione fanno distinzione tra maiuscole e minuscole. Media CDN converte l'intestazione in minuscolo prima di convalidare la firma. |
HeaderName=HEADER_NAME |
HeaderValue |
Il valore di un campo di intestazione della richiesta denominato che deve essere presente nella
richiesta. In genere si tratta di un ID utente o di un altro identificatore opaco. Le richieste
con HeaderValue ma senza HeaderName vengono
rifiutate.
|
HeaderValue=HEADER_VALUE |
IPRanges |
Un elenco di un massimo di cinque indirizzi IPv4 e IPv6 in formato CIDR per
cui questo URL è valido in formato base64 sicuro per il web. Ad esempio, per specificare gli intervalli IP "192.6.13.13/32,193.5.64.135/32", specifica L'inclusione di IPRanges nelle firme potrebbe non essere utile quando i client sono
a rischio di migrazioni WAN o nei casi in cui il percorso di rete al
frontend dell'applicazione è diverso dal percorso di pubblicazione.
Media CDN rifiuta i client con un Di seguito sono riportati i casi che potrebbero comportare il rifiuto dei client da parte di Media CDN
con un codice
Tutti questi fattori possono contribuire a far sì che un determinato client abbia un
indirizzo IP non deterministico durante una sessione di riproduzione video. Se l'
indirizzo IP del client cambia dopo che hai concesso l'accesso e il
client tenta di scaricare un segmento video nel buffer di riproduzione, riceve un |
IPRanges=BASE_64_IP_RANGES |
URLPrefix |
Il prefisso URL con codifica base64 (sicuro per URL) a cui concedere l'accesso. Se specifichi un
URLPrefix, puoi firmare un prefisso e aggiungere gli stessi parametri di query
a più URL all'interno del player o della generazione del manifest.
Il URLPrefix è obbligatorio quando si utilizza il formato del cookie firmato.
|
URLPrefix=BASE_64_URL_PREFIX |