Utilizzare l'autenticazione con doppio token

Per applicare l'autenticazione con doppio token quando i visualizzatori accedono a una risorsa di flusso, devi configurare percorsi separati. Una route è una configurazione che corrisponde per Media CDN e indirizza il traffico HTTP a un'origine. Media CDN supporta le route per live streaming HTTP (HLS) o Risorse Dynamic Adaptive Streaming over HTTP (DASH). Per ulteriori informazioni Consulta l'articolo Configurare le route di servizio per informazioni sulle route in Media CDN.

Per i flussi HLS, Media CDN supporta l'autenticazione con doppio token attraverso cookie e parametri di ricerca dell'URL (senza cookie). Per gli stream DASH, Media CDN supporta solo l'autenticazione con doppio token basata su cookie.

In questa pagina viene descritto come configurare le route Media CDN per semplificare proteggere i contenuti utilizzando l'autenticazione con doppio token.

Prima di iniziare

Segui questi passaggi:

  1. Per i token di breve durata, scegli uno dei seguenti algoritmi di firma:

    • Firme Ed25519
    • Codici di autenticazione dei messaggi (HMAC) basati su hash a chiave simmetrica

    Puoi abilitare gli algoritmi di firma HMAC simmetrici solo per le route configurate per generare nuovi token di lunga durata. Ti consigliamo di utilizzare Ed25519 firme per prestazioni e sicurezza ottimali e HMAC a chiave simmetrica solo quando necessario per la compatibilità con altre reti CDN.

  2. Includi le chiavi richieste in una risorsa EdgeCacheKeyset.

    I token devono essere firmati o verificati con chiavi in un EdgeCacheKeyset risorsa. Il set di chiavi deve includere le chiavi corrette per il set di chiavi selezionato di firma digitale. Nella tabella seguente sono descritte le singole firme degli algoritmi e delle loro chiavi richieste.

    Algoritmo di firma Chiavi richieste nel set di chiavi
    Ed25519 Chiavi pubbliche
    HMAC-SHA1 Chiavi condivise di convalida
    HMAC-SHA256 Chiavi condivise di convalida

    Come best practice, crea due set di tasti separati, uno per di breve durata e un altro per i token di lunga durata.

    Tuttavia, se utilizzi DASH e la descrizione della presentazione multimediale dinamica (MPD), devi utilizzare lo stesso set di chiavi per entrambi di lunga durata e di breve durata.

  3. Per i token di lunga durata, scegli uno dei seguenti formati di token:

    • Cookie
    • Parametri di ricerca dell'URL

Configura token di breve durata

A seconda dell'algoritmo di firma che vuoi utilizzare, configura una durata usando una delle seguenti opzioni.

Firma Ed25519

  1. Genera una chiave privata:

    openssl genpkey -algorithm ed25519 -outform PEM -out SSL_KEY_NAME.private.key
    

    Sostituisci SSL_KEY_NAME con il nome di una chiave.

  2. Genera una chiave pubblica dalla chiave privata:

    openssl pkey -outform DER -pubout -in SSL_KEY_NAME.private.key |\
    tail -c +13 |\
    python3 -c "import base64, sys; print(('%s' % base64.urlsafe_b64encode(sys.stdin.buffer.read()))[2:-1])"
    
  3. Crea un nuovo set di chiavi con un'unica chiave pubblica:

    Console

    1. Nella console Google Cloud, vai alla pagina Media CDN.

      Vai a Media CDN

    2. Fai clic sulla scheda Set di chiavi.

    3. Fai clic su Crea set di chiavi.

    4. In Nome, inserisci un nome univoco del set di chiavi.

    5. (Facoltativo) Per Descrizione, inserisci una descrizione del set di chiavi.

    6. (Facoltativo) Fai clic su Aggiungi etichetta e inserisci una o più coppie chiave-valore coppie di chiavi per il set di chiavi.

    7. Fai clic su Aggiungi chiave pubblica, quindi:

      1. In ID, inserisci un ID alfanumerico.
      2. Seleziona Inserisci il valore, quindi specifica la codifica in base64 della chiave pubblica Ed25519.
    8. Fai clic su Crea set di chiavi.

    gcloud

    Usa il comando gcloud edge-cache keysets create.

    gcloud edge-cache keysets create SHORT_KEYSET_NAME \
      --public-key='id=SSL_PUBLIC_KEY_NAME,value=SSL_PUBLIC_KEY_VALUE'
    

    Sostituisci quanto segue:

    • SHORT_KEYSET_NAME: un set di chiavi univoco nome, ad esempio prod-vod-keyset
    • SSL_PUBLIC_KEY_NAME: il nome del tuo Chiave pubblica SSL
    • SSL_PUBLIC_KEY_VALUE: il valore del tuo Chiave pubblica SSL

    Per esaminare le chiavi associate al set di chiavi, utilizza la Comando gcloud edge-cache keysets describe.

    gcloud edge-cache keysets describe prod-vod-keyset
    

    L'output è simile al seguente:

    name: prod-vod-keyset
    description: "Keyset for prod.example.com"
    publicKeys:
    - id: "key-20200918"
      value: "DThVLjhAKm3VYOvLBAwFZ5XbjVyF98Ias8NZU0WEM9w"
    - id: "key-20200808"
      value: "Lw7LDSaDUrbDdqpPA6JEmMF5BA5GPtd7sAjvsnh7uDA="
    

    Terraform

    resource "google_network_services_edge_cache_keyset" "default" {
      name        = "prod-vod-keyset"
      description = "Keyset for prod.example.com"
      public_key {
        id    = "key-20200918"
        value = "FHsTyFHNmvNpw4o7-rp-M1yqMyBF8vXSBRkZtkQ0RKY" # Update Ed25519 public key
      }
      public_key {
        id    = "key-20200808"
        value = "Lw7LDSaDUrbDdqpPA6JEmMF5BA5GPtd7sAjvsnh7uDA=" # Update Ed25519 public key
      }
    }

HMAC chiave simmetrica

  1. Se non hai mai utilizzato Secret Manager, configurare Secret Manager.

  2. Crea un secret.

  3. Aggiungi una versione del secret in formato binario.

  4. Concedi il ruolo di accesso a Secret Manager (roles/secretmanager.secretAccessor) a Media CDN account di servizio:

    Console

    1. Nella console Google Cloud, vai alla pagina Secret Manager.

      Vai a Secret Manager

    2. Seleziona la casella di controllo accanto al nome del secret.

    3. Fai clic su Mostra riquadro informazioni.

    4. Nel riquadro delle informazioni, fai clic su Aggiungi entità.

    5. Per Nuove entità, inserisci il servizio Media CDN account in questo formato:

      service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.com
      

      Sostituisci PROJECT_NUMBER con il tuo progetto numero.

    6. In Seleziona un ruolo, seleziona Secret Manager e poi Funzione di accesso ai secret di Secret Manager.

    gcloud

    Usa il comando gcloud secrets add-iam-policy-binding.

    gcloud secrets add-iam-policy-binding projects/PROJECT_NUMBER/secrets/SECRET_ID \
      --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.com" \
      --role="roles/secretmanager.secretAccessor"
    

    Sostituisci quanto segue:

    • PROJECT_NUMBER: il numero del tuo progetto
    • SECRET_ID: l'ID del secret
  5. Accedere alle versioni dei secret e copia i percorsi dei secret, inclusi i numeri di versione.

  6. Crea un nuovo set di chiavi con i secret condivisi in una chiave condivisa di convalida:

    Console

    1. Nella console Google Cloud, vai alla pagina Media CDN.

      Vai a Media CDN

    2. Fai clic sulla scheda Set di chiavi.

    3. Fai clic su Crea set di chiavi.

    4. In Nome, inserisci un nome univoco del set di chiavi.

    5. (Facoltativo) Per Descrizione, inserisci una descrizione del set di chiavi.

    6. (Facoltativo) Fai clic su Aggiungi etichetta e inserisci una o più coppie chiave-valore coppie di chiavi per il set di chiavi.

    7. Per specificare una chiave condivisa di convalida, fai clic su Aggiungi chiave condivisa di convalida. quindi procedi nel seguente modo:

      1. In Secret, seleziona un secret dall'elenco e inserisci un manualmente specificando l'ID risorsa, oppure crea un nuovo secret e selezionalo.

      2. Per Versione secret, seleziona una versione dall'elenco oppure crea una nuova versione del secret e selezionalo.

    8. Fai clic su Crea set di chiavi.

    gcloud

    Usa il comando gcloud edge-cache keysets create.

    gcloud edge-cache keysets create SHORT_KEYSET_NAME \
      --validation-shared-key='secret_version=projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/KEY_VERSION'
    

    Sostituisci quanto segue:

    • SHORT_KEYSET_NAME: un nome univoco per set di chiavi, ad esempio prod-vod-keyset
    • PROJECT_NUMBER: il tuo ID progetto
    • SECRET_ID: l'ID risorsa del secret
    • KEY_VERSION: la versione del secret vuoi utilizzare

Configura token di lunga durata

Le chiavi gestite da Google sono limitate all'ambito del set di chiavi. Ciò significa che due set di tasti diversi hanno chiavi gestite da Google diverse. Le chiavi gestite da Google vengono ruotate regolarmente.

Configura i token di lunga durata utilizzando una delle seguenti opzioni:

Console

  1. Crea o modifica un set di chiavi.

  2. Nella sezione Chiavi, seleziona Utilizza la chiave gestita da Google per il doppio token. autenticazione.

gcloud e YAML

Utilizza una delle seguenti opzioni:

  • Crea una chiave di firma gestita da Google:

    gcloud edge-cache keysets create LONG_KEYSET_NAME \
        --public-key='id=google-managed-key,managed=true'
    

    Sostituisci LONG_KEYSET_NAME con una chiave un nome personalizzato, ad esempio prod-vod-keyset-long.

  • Modifica un set di chiavi esistente:

    1. Esporta il set di chiavi in un file YAML. Utilizza la Comando gcloud edge-cache keysets export.

      gcloud edge-cache keysets export LONG_KEYSET_NAME \
         --destination=prod-vod-keyset-long.yaml
      
    2. In un editor di testo o negli strumenti di gestione della configurazione, modifica del set di chiavi, in modo che risulti simile alla seguente:

      name: projects/my-project/locations/global/edgeCacheKeysets/LONG_KEYSET_NAME
      publicKeys:
      - id: some-key
        value: MC4CAQAwBQYDK2VwBCIEINV2iYugIWBuvGBJUQ_Ab69E4v4zcVqvgYHw-iZxGzcd
      - id: google-managed-key
        managed: true
      
    3. Importa il set di chiavi modificato. Utilizza la Comando gcloud edge-cache keysets import:

      gcloud edge-cache keysets import LONG_KEYSET_NAME \
          --source=prod-vod-keyset-long.yaml
      

Puoi includere chiavi pubbliche aggiuntive nel set di chiavi dei token di lunga durata. La può avere al massimo tre chiavi pubbliche. In pratica, ciò significa che il set di chiavi può avere due chiavi gestite dall'utente e una chiave gestita da Google.

Media CDN utilizza sempre la chiave gestita da Google per generare i token. Le chiavi gestite dall'utente possono essere utilizzate solo per la verifica.

L'inclusione di chiavi pubbliche aggiuntive è utile per consentire all'applicazione del player accedere a playlist multimediali e segmenti multimediali utilizzando richieste con firma che sono generate dalle tue chiavi private.

Configura scambio di token

Questa sezione mostra come configurare lo scambio di token creando più route. Una route ti consente di ottimizzare il comportamento in base al tipo di contenuti, client e i requisiti di aggiornamento. Nei seguenti esempi, utilizziamo route per configurare lo scambio di token per ogni parte di una richiesta di contenuti multimediali.

Configura la route del manifest principale in modo che richieda token di breve durata

Configura Media CDN in modo che richieda token di breve durata sulla rete principale del manifest.

Console

Attiva l'autenticazione dei token di breve durata sulla route del manifest principale:

  1. Nella console Google Cloud, vai alla pagina Media CDN.

    Vai a Media CDN

  2. Per aprire la pagina Dettagli di un servizio, fai clic sul suo nome.

  3. Per passare alla modalità di modifica, fai clic sul pulsante Modifica.

  4. Per accedere alla sezione Routing, fai clic su Avanti.

  5. Espandi la regola host a cui vuoi aggiungere il file manifest principale regola di route.

  6. Fai clic su Aggiungi regola di percorso.

    In alternativa, per modificare una regola di route, fai clic su Modifica nella rispettiva riga.

  7. Nel riquadro Modifica regola route, per Priorità, imposta un valore per ad esempio 1.

  8. Per Descrizione, fornisci una breve descrizione che possa aiutare a identificare la regola nell'elenco delle regole.

  9. Nella sezione Corrispondenza, fai clic su Aggiungi una condizione di corrispondenza. Poi esegui la seguenti:

    1. In Tipo di corrispondenza, seleziona Corrispondenza modello di percorso.
    2. In Corrispondenza del percorso, specifica i nomi o i modelli di percorso per il valore File di playlist principale HLS (M3U8) o file manifest DASH (MPD). Per maggiori informazioni informazioni, consulta Corrispondenza del percorso.
  10. Fai clic su Configurazioni avanzate.

  11. Nella sezione Azione di routing, fai clic su Aggiungi un elemento.

  12. In Tipo, seleziona Criterio CDN.

  13. Nella sezione Richiesta firmata, per Modalità di richiesta firmata, seleziona Richiedi token.

  14. Nella sezione Set di chiavi per richiesta firmata, segui questi passaggi:

    1. Per specificare il set di chiavi per i token di breve durata, fai clic su Seleziona un set di chiavi e scegli il tuo set di chiavi token di breve durata.

      In alternativa, per creare un nuovo set di chiavi con le chiavi necessarie, Fai clic su Crea nuovo set di chiavi. e selezionalo.

    2. Per Algoritmo di firma, seleziona Ed25519 utilizzando chiavi pubbliche.

    3. Per Parametro di query del token, mantieni il valore predefinito, edge-cache-token.

      In alternativa, se prevedi di utilizzare parametri di ricerca dell'URL del manifest HLS anziché i cookie per l'autenticazione, specifica il parametro in cui archiviare i token della richiesta.

    4. Per Durata massima, specifica la durata massima in secondi di richieste in entrata.

  15. Per salvare le modifiche nella sezione Azione di routing, fai clic su Fine.

  16. Per salvare le modifiche nella regola di route, fai clic su Salva.

gcloud e YAML

  1. Esportare la configurazione di Media CDN in un file YAML. Utilizza la Comando gcloud edge-cache services export.

    gcloud edge-cache services export SERVICE_NAME \
        --destination=FILENAME.yaml
    

    Sostituisci quanto segue:

    • SERVICE_NAME: il nome del servizio
    • FILENAME : il nome del tuo file YAML
  2. Per attivare l'autenticazione dei token di breve durata nel manifest principale nella sezione cdnPolicy del file YAML della route, specificare una configurazione signedTokensOptions.

      pathMatchers:
      - name: "ROUTE_NAME"
        routeRules:
        - priority: 1
          description: "ROUTE_DESCRIPTION"
          origin: "ORIGIN_NAME"
          matchRules:
          - pathTemplateMatch: "/MANIFEST_OR_PLAYLIST"
          routeAction:
            cdnPolicy:
              cacheMode: CACHE_ALL_STATIC
              signedRequestMode: REQUIRE_TOKENS
              signedRequestKeyset: SHORT_KEYSET_NAME
              signedRequestMaximumExpirationTtl: SIGNED_REQUEST_MAXIMUM_EXPIRATION_TIME
              signedTokenOptions:
                tokenQueryParameter: SHORT_TOKEN_NAME
    

    Sostituisci quanto segue:

    • ROUTE_NAME: il nome della regola di route
    • ROUTE_DESCRIPTION: una descrizione del regola di route
    • ORIGIN_NAME: il nome dell'origine
    • MANIFEST_OR_PLAYLIST: il nome dell'HLS playlist principale (M3U8) o file manifest DASH (MPD). Per maggiori informazioni informazioni, consulta Corrispondenza del percorso.
    • SHORT_KEYSET_NAME: il nome del set di chiavi da utilizzare per i token di breve durata
    • SIGNED_REQUEST_MAXIMUM_EXPIRATION_TIME: la scadenza per le richieste firmate, ad esempio 600s. Per Per ulteriori informazioni, consulta signedRequestMaximumExpirationTtl.
    • Facoltativo: SHORT_TOKEN_NAME: la query in cui trovare il token breve. Il valore predefinito è edge-cache-token. Per ulteriori informazioni, vedi SignedTokenOptions.

    Quando utilizzi HMAC a chiave simmetrica, nella sezione signedTokenOptions: aggiungi allowedSignatureAlgorithms con il suo valore come HMAC_SHA_256:

           allowedSignatureAlgorithms:
           - HMAC_SHA_256
    
  3. Per aggiornare il servizio, importa la configurazione di Media CDN dal file YAML. Utilizza la Comando gcloud edge-cache services import.

    gcloud edge-cache services import SERVICE_NAME \
        --source=FILENAME.yaml
    

Questa operazione completa il processo di abilitazione dell'autenticazione con token singolo.

Per configurare l'autenticazione con doppio token, vai alle sezioni seguenti.

Configura la regola di route del manifest principale per generare token di lunga durata

Configura Media CDN per generare token di lunga durata sul sito principale del manifest. Scegli i cookie o parametri di ricerca dell'URL per generare questi token.

Console

Modifica la regola di route manifest principale in modo che Media CDN possa genera token di lunga durata sulla route:

  1. Nella pagina Modifica regola di route, fai clic su Configurazioni avanzate.
  2. In Tipo, seleziona Criterio CDN.
  3. Espandi Autenticazione con doppio token.
  4. Per Azione di firma, seleziona Genera nuovo token di lunga durata.
  5. Per Tipo di firma, seleziona una delle seguenti opzioni:

    • tramite cookie (per flussi HLS e DASH): configura Media CDN per restituire un Edge-Cache-Cookie con la risposta del manifest principale.
    • tramite parametri di ricerca dell'URL del manifest HLS (senza cookie): configura Media CDN per manipolare il manifest principale HLS aggiungendo un token di lunga durata a ogni URL.
  6. Nella sezione Genera nuovo token di lunga durata, segui questi passaggi:

    1. Per specificare un set di chiavi per i token di lunga durata, fai clic su Seleziona un set di chiavi e scegli il tuo set di chiavi token di lunga durata.

      In alternativa, fai clic su Crea nuovo set di chiavi per creare un nuovo set di chiavi. contiene le chiavi che ti servono. e selezionalo.

    2. Per il TTL del token, specifica, in secondi, la durata massima del il token di lunga durata.

    3. In Tipo di firma, se hai selezionato l'opzione tramite cookie, Nella sezione Parametri copiati, seleziona i parametri. che vuoi che Media CDN copi dalla breve durata al token di lunga durata. Per utilizzare l'autenticazione con doppio token: devi selezionare PathGlobs (o uno dei suoi alias, acl) o paths) o URLPrefix.

      Se hai selezionato l'opzione tramite i parametri di query dell'URL del file manifest HLS, in Parametro di query del token, mantieni il valore predefinito, edge-cache-token.

  7. Per salvare le modifiche nella sezione Azione di routing, fai clic su Fine.

  8. Per salvare le modifiche nella regola di route, fai clic su Salva.

    Viene visualizzato un messaggio che ti chiede se vuoi creare i percorsi per i contenuti multimediali playlist e segmenti automaticamente o manualmente. Se selezioni il opzione automatica, viene creata una singola nuova route per la firma dei cookie e due route per la firma senza cookie. Se selezioni il pulsante passa alla sezione successiva.

gcloud e YAML

Modifica la sezione addSignatures della regola di route del manifest principale in modo che Media CDN può generare token di lunga durata sulla route:

Cookie

          addSignatures:
            actions:
              - GENERATE_COOKIE
            keyset: LONG_KEYSET_NAME
            tokenTtl: TOKEN_EXPIRATION_TIME
            copiedParameters:
              - PathGlobs
              - SessionID

Sostituisci quanto segue:

  • LONG_KEYSET_NAME: il nome del tuo set di chiavi token di lunga durata

  • TOKEN_EXPIRATION_TIME: la data e l'ora di scadenza del token di lunga durata, ad esempio 86400s per un token di scadenza

Questo esempio di codice implementa le seguenti modifiche:

  • addSignatures.actions: GENERATE_COOKIE: configura Media CDN per restituire un Edge-Cache-Cookie con la risposta manifest principale

  • copiedParameters.PathGlobs: configura Media CDN per la copia PathGlobs dal token di breve durata al token di lunga durata di accesso. Per utilizzare l'autenticazione con doppio token, devi usare: copiedParameters.PathGlobs o copiedParameters.URLPrefix. Per maggiori informazioni informazioni, vedi copiedParameters.

  • (Facoltativo) copiedParameters.SessionID: configura Media CDN per copiare SessionID dalla breve durata al token di lunga durata

Quando viene applicata l'azione GENERATE_COOKIE, Media CDN restituisce un'intestazione Set-Cookie simile alla seguente con risposta del manifest:

Set-Cookie: Edge-Cache-Cookie=PathGlobs=PATHS~SessionID=SESSION_ID~Expires=EXPIRATION~_GO=Generated~Signature=SIGNATURE

Parametri di ricerca dell'URL

          addSignatures:
            actions:
              - GENERATE_TOKEN_HLS_COOKIELESS
            keyset: LONG_KEYSET_NAME
            tokenTtl: TOKEN_EXPIRATION_TIME
            copiedParameters:
              - PathGlobs
              - SessionID
            tokenQueryParameter: LONG_TOKEN_NAME

Sostituisci quanto segue:

  • LONG_KEYSET_NAME: il nome del tuo set di chiavi di lunga durata

  • TOKEN_EXPIRATION_TIME: la scadenza del token di lunga durata, ad esempio 86400s per scadenza di un giorno

Questo esempio di codice implementa le seguenti modifiche:

  • addSignatures.actions: GENERATE_TOKEN_HLS_COOKIELESS: configura Media CDN per manipolare l'istanza principale HLS aggiungendo un token di lunga durata a ciascun URI presente.

  • copiedParameters.PathGlobs: configura Media CDN per la copia PathGlobs dal token di breve durata al token di lunga durata di accesso. Per utilizzare l'autenticazione con doppio token, devi usare una delle seguenti opzioni: copiedParameters.PathGlobs o copiedParameters.URLPrefix. Per maggiori informazioni informazioni, vedi copiedParameters.

  • (Facoltativo) copiedParameters.SessionID: configura Media CDN copiare SessionID dal token di breve durata alla di lunga durata.

  • Facoltativo: LONG_TOKEN_NAME: la query in cui inserire il token lungo generato. Il valore predefinito è edge-cache-token. Per ulteriori informazioni, vedi tokenQueryParameter.

Il seguente file manifest mostra GENERATE_TOKEN_HLS_COOKIELESS azione applicata:

#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=1280000,AVERAGE-BANDWIDTH=1000000
http://example.com/HLS_PRIMARY_PLAYLIST.m3u8?LONG_TOKEN_NAME=PathGlobs=PATHS~SessionID=SESSION_ID~Expires=EXPIRATION~_GO=Generated~Signature=SIGNATURE

Media CDN verifica il token di breve durata e poi genera e archivia il token di lunga durata Parametro di query LONG_TOKEN_NAME.

Configura le route dei segmenti e della playlist multimediale in modo che richiedano token di lunga durata

Configura le route dei segmenti e della playlist multimediale in modo che richiedano una lunga durata di token.

Console

Cookie

Crea una regola di route per la playlist multimediale e il routing dei segmenti:

  1. Nella sezione Routing della pagina Modifica servizio cache perimetrale, fai clic sulla regola host che ha la route del manifest principale.
  2. Fai clic su Aggiungi regola di percorso.
  3. Nel riquadro Modifica regola route, per Priorità, imposta un valore maggiore di quella della route del manifest principale, ad esempio 2. Valori più alti indicano una priorità inferiore.
  4. Per Descrizione, fornisci una breve descrizione che possa aiutare a identificare la regola nell'elenco delle regole.
  5. Imposta i seguenti campi come suggerito:

    • Seleziona un'origine: come per la regola di route del manifest principale
    • Aggiungi una condizione di corrispondenza: come per la route manifest principale. regola
    • Tipo: criterio CDN
    • Modalità di richiesta firmata: Richiedi token
    • Seleziona un set di chiavi: come per i token di lunga durata
    • Algoritmo di firma: uguale alla regola di route del manifest principale.
  6. Espandi Autenticazione con doppio token.

  7. Per Azione di firma, mantieni il valore predefinito Nessuna.

  8. Fai clic su Fine e poi su Salva.

Parametri di ricerca dell'URL

  1. Crea una regola di route per la playlist multimediale.

    1. Nella sezione Routing della pagina Modifica servizio cache perimetrale, fai clic sulla regola host che ha la route del manifest principale.
    2. Fai clic su Aggiungi regola di percorso.
    3. Nel riquadro Modifica regola route, per Priorità, imposta un valore. superiore a quello della route del manifest principale, ad esempio 2. Valori più alti indicano una priorità inferiore.
    4. Per Descrizione, fornisci una breve descrizione che possa aiutarti identificare la regola nell'elenco delle regole.
    5. Imposta i seguenti campi come suggerito:

      • Seleziona un'origine: come per la route manifest principale. regola
      • Aggiungi una condizione di corrispondenza, come per il manifest principale. regola di route
      • Tipo: criterio CDN
      • Modalità di richiesta firmata: Richiedi token
      • Seleziona un set di chiavi: lo stesso vale per i token di lunga durata.
      • Algoritmo di firma: uguale al file manifest principale. regola di route
      • Parametro di query del token: identico al parametro di lunga durata token
    6. Espandi Autenticazione con doppio token.

    7. Per Azione di firma, seleziona Propaga di lunga durata esistente di accesso.

      Questa opzione viene attivata solo dopo la verifica di Media CDN che il token di lunga durata sia stato generato tramite parametri di ricerca dell'URL del manifest HLS (senza cookie) di testo.

    8. Per Parametro di query del token, mantieni il valore predefinito, edge-cache-token.

    9. Fai clic su Fine e poi su Salva.

  2. Crea una regola di route per i segmenti multimediali.

    Questo percorso è simile al percorso per le playlist multimediali, con quanto segue differenze principali:

    • Per Priorità, imposta un valore maggiore di quello del contenuto multimediale. regola di route della playlist, ad esempio 3.
    • Per Descrizione, fornisci una breve descrizione che possa aiutarti identificare la regola nell'elenco delle regole.
    • Nella sezione Autenticazione con doppio token, per Azione di firma, mantieni il valore predefinito Nessuna.

gcloud e YAML

Modifica il file YAML:

Cookie

Configura la playlist multimediale e i segmenti in modo che richiedano cookie di lunga durata:

    - priority: 2
      description: "SEGMENTS_ROUTE_DESCRIPTION"
      origin: "ORIGIN_NAME"
      matchRules:
      - pathTemplateMatch: "/**.m3u8" # HLS media playlists
      - pathTemplateMatch: "/**.ts" # HLS segments
      - pathTemplateMatch: "/**.m4s" # DASH / CMAF segments
      routeAction:
        cdnPolicy:
          cacheMode: CACHE_ALL_STATIC
          signedRequestMode: REQUIRE_TOKENS
          signedRequestKeyset: LONG_KEYSET_NAME

Sostituisci SEGMENTS_ROUTE_DESCRIPTION con un descrizione del percorso.

Questo esempio di codice implementa le seguenti modifiche:

  • priority: 2: la priorità del percorso. Valori più alti indicano meno la priorità. Poiché il percorso per le playlist multimediali e i segmenti multimediali corrisponde a qualsiasi nome file che termina con .m3u8, la priorità della route deve inferiore rispetto alla route creata in precedenza per il manifest principale.
  • signedRequestMode: REQUIRE_TOKENS: applica i token per i contenuti multimediali playlist e segmenti multimediali. Se utilizzi contenuti multimediali statici i file di descrizione della presentazione (MPD), quindi i set di tasti lunghi e brevi potrebbero essere diverse. Se utilizzi file MPD dinamici, i valori lunghi e I set di tasti brevi devono essere uguali.
  • signedRequestKeyset: LONG_KEYSET_NAME: Media CDN utilizza il set di chiavi di lunga durata per convalidare cookie di lunga durata fornito da uno user agent per la playlist multimediale e richieste di segmenti multimediali.

Parametri di ricerca dell'URL

Aggiungi due configurazioni di route:

  1. Configura le route del manifest multimediale HLS per propagare le route di lunga durata di token:

       - priority: 2
         description: "PLAYLIST_ROUTE_DESCRIPTION"
         origin: "ORIGIN_NAME"
         matchRules:
         - pathTemplateMatch: "/**.m3u8" # HLS media playlists
         routeAction:
           cdnPolicy:
           cacheMode: CACHE_ALL_STATIC
           signedRequestMode: REQUIRE_TOKENS
           signedRequestKeyset: LONG_KEYSET_NAME
           addSignatures:
             actions:
             - PROPAGATE_TOKEN_HLS_COOKIELESS
    

    Sostituisci PLAYLIST_ROUTE_DESCRIPTION con un descrizione del percorso.

    Questo esempio di codice implementa le seguenti modifiche:

    • priority: 2: la priorità del percorso. Valori più alti indicano una priorità inferiore. Perché il percorso delle tue playlist multimediali corrisponde qualsiasi nome file che termina con .m3u8, la priorità della route deve essere inferiore rispetto alla route creata in precedenza per il manifest principale.
    • signedRequestMode: REQUIRE_TOKENS: applica i token per i contenuti multimediali playlist e segmenti multimediali. Se utilizzi contenuti multimediali statici i file di descrizione della presentazione (MPD), i set di tasti lunghi e brevi potrebbero essere diverse. Se utilizzi file MPD dinamici, il file lungo e i set di tasti brevi devono essere uguali.
    • signedRequestKeyset: LONG_KEYSET_NAME: Media CDN utilizza il set di chiavi di lunga durata per convalidare cookie di lunga durata fornito da uno user agent per la playlist multimediale e richieste di segmenti multimediali.
    • addSignatures.actions: PROPAGATE_TOKEN_HLS_COOKIELESS: configura Media CDN per copiare il token di lunga durata sui contenuti multimediali URI dei segmenti nelle playlist multimediali.
  2. Configura le route dei segmenti in modo che richiedano token di lunga durata:

       - priority: 3
         description: "SEGMENTS_ROUTE_DESCRIPTION"
         origin: "ORIGIN_NAME"
         matchRules:
         - pathTemplateMatch: "/**.ts" # HLS segments
         routeAction:
           cdnPolicy:
             cacheMode: CACHE_ALL_STATIC
             signedRequestMode: REQUIRE_TOKENS
             signedRequestKeyset: LONG_KEYSET_NAME
    

    Sostituisci SEGMENTS_ROUTE_DESCRIPTION con un descrizione del percorso.

    Questo esempio di codice implementa le seguenti modifiche:

    • priority: 3: la priorità del percorso. Valori più alti indicano una priorità inferiore. La priorità di questa route deve essere inferiore a percorso creato in precedenza per le playlist multimediali.
    • signedRequestMode: REQUIRE_TOKENS: applica i token per i contenuti multimediali playlist e segmenti multimediali.
    • signedRequestKeyset: LONG_KEYSET_NAME: Media CDN utilizza il set di chiavi di lunga durata per convalidare token firmato di lunga durata fornito da uno user agent per i contenuti multimediali richieste di playlist e segmenti multimediali.

File di configurazione di esempio

Il seguente esempio di codice mostra un file di configurazione completato:

Cookie

name: SERVICE_NAME
routing:
  hostRules:
  - hosts:
    - DOMAIN_NAME
    pathMatcher: routes
  pathMatchers:
    - name: "ROUTE_NAME"
      routeRules:
      - priority: 1
        description: "ROUTE_DESCRIPTION"
        origin: "ORIGIN_NAME"
        matchRules:
        - pathTemplateMatch: "/HLS_MASTER_PLAYLIST.m3u8" # HLS primary playlists
        - pathTemplateMatch: "/DASH_MANIFESTS.mpd" # DASH manifests
        routeAction:
          cdnPolicy:
            cacheMode: CACHE_ALL_STATIC
            signedRequestMode: REQUIRE_TOKENS
            signedRequestKeyset: SHORT_KEYSET_NAME
            signedRequestMaximumExpirationTtl: SIGNED_REQUEST_MAXIMUM_EXPIRATION_TIME
            addSignatures:
              actions:
                - GENERATE_COOKIE
              keyset: LONG_KEYSET_NAME
              tokenTtl: TOKEN_EXPIRATION_TIME
              copiedParameters:
                - PathGlobs
                - SessionID
      - priority: 2
        description: "SEGMENTS_ROUTE_DESCRIPTION"
        origin: "ORIGN_NAME"
        matchRules:
        - pathTemplateMatch: "/**.m3u8" # HLS media playlists
        - pathTemplateMatch: "/**.ts" # HLS segments
        - pathTemplateMatch: "/**.m4s" # DASH / CMAF segments
        routeAction:
          cdnPolicy:
            cacheMode: CACHE_ALL_STATIC
            signedRequestMode: REQUIRE_TOKENS
            signedRequestKeyset: LONG_KEYSET_NAME

Parametri di ricerca dell'URL

name: SERVICE_NAME
routing:
  hostRules:
  - hosts:
    - DOMAIN_NAME
    pathMatcher: routes
  pathMatchers:
    - name: "ROUTE_NAME"
      routeRules:
      - priority: 1
        description: "ROUTE_DESCRIPTION"
        origin: "ORIGIN_NAME"
        matchRules:
        - pathTemplateMatch: "/HLS_PRIMARY_PLAYLIST.m3u8" # HLS primary playlists
        routeAction:
          cdnPolicy:
            cacheMode: CACHE_ALL_STATIC
            signedRequestMode: REQUIRE_TOKENS
            signedRequestKeyset: SHORT_KEYSET_NAME
            signedRequestMaximumExpirationTtl: SIGNED_REQUEST_MAXIMUM_EXPIRATION_TIME
            signedTokenOptions:
              tokenQueryParameter: SHORT_TOKEN_NAME
            addSignatures:
              actions:
                - GENERATE_TOKEN_HLS_COOKIELESS
              keyset: LONG_KEYSET_NAME
              tokenTtl: TOKEN_EXPIRATION_TIME
              tokenQueryParameter: LONG_TOKEN_NAME
              copiedParameters:
                - PathGlobs
                - SessionID
      - priority: 2
        description: "PLAYLIST_ROUTE_DESCRIPTION"
        origin: "ORIGIN_NAME"
        matchRules:
        - pathTemplateMatch: "/**.m3u8" # HLS media playlists
        routeAction:
          cdnPolicy:
            cacheMode: CACHE_ALL_STATIC
            signedRequestMode: REQUIRE_TOKENS
            signedRequestKeyset: LONG_KEYSET_NAME
            addSignatures:
              actions:
                - PROPAGATE_TOKEN_HLS_COOKIELESS
      - priority: 3
        description: "SEGMENTS_ROUTE_DESCRIPTION"
        origin: "ORIGIN_NAME"
        matchRules:
        - pathTemplateMatch: "/**.ts" # HLS segments
        routeAction:
          cdnPolicy:
            cacheMode: CACHE_ALL_STATIC
            signedRequestMode: REQUIRE_TOKENS
            signedRequestKeyset: LONG_KEYSET_NAME

Genera token di breve durata sul server delle applicazioni

Per informazioni sulla generazione dei token, consulta Generare i token.

Applica protezioni dei contenuti per la difesa in profondità

Come best practice, abilita l'autenticazione dell'origine in questo modo: