Uso di castLabs per distribuire licenze Widevine a Servizi multimediali di AzureUsing castLabs to deliver Widevine licenses to Azure Media Services

OverviewOverview

Questo articolo illustra come usare Servizi multimediali di Azure per distribuire un flusso crittografato in modo dinamico da Servizi multimediali di Azure mediante DRM di PlayReady e Widevine.This article describes how you can use Azure Media Services (AMS) to deliver a stream that is dynamically encrypted by AMS with both PlayReady and Widevine DRMs. La licenza per PlayReady viene distribuita dal server licenze PlayReady di Servizi multimediali, mentre la licenza per Widevine viene distribuita dal server licenze castLabs .The PlayReady license comes from Media Services PlayReady license server and Widevine license is delivered by castLabs license server.

Per la riproduzione di contenuti in streaming protetti da CENC (PlayReady e/o Widevine), è possibile usare Azure Media Player.To playback streaming content protected by CENC (PlayReady and/or Widevine), you can use Azure Media Player. Per informazioni dettagliate vedere la documentazione dell’AMPSee AMP document for details.

Il diagramma seguente illustra un'architettura di integrazione di alto livello tra castLabs e Servizi multimediali di Azure.The following diagram demonstrates a high-level Azure Media Services and castLabs integration architecture.

integrazione

Configurazione di sistema tipicaTypical system set up

  • I contenuti multimediali vengono archiviati in Servizi multimediali di Azure.Media content is stored in AMS.
  • Gli ID delle chiavi simmetriche vengono archiviati sia in castLabs sia in Servizi multimediali di Azure.Key IDs of content keys are stored in both castLabs and AMS.
  • castLabs e Servizi multimediali di Azure dispongono entrambi di un sistema di autenticazione dei token integrato.castLabs and AMS both have token authentication built in. I token di autenticazione vengono illustrati nelle sezioni seguenti.The following sections discuss authentication tokens.
  • Quando un client deve trasmettere un video in streaming, il contenuto viene crittografato dinamicamente con la crittografia comune e organizzato da Servizi multimediali di Azure in pacchetti dinamici creati con i protocolli Smooth Streaming e DASH.When a client requests to stream the video, the content is dynamically encrypted with Common Encryption (CENC) and dynamically packaged by AMS to Smooth Streaming and DASH. Viene inoltre fornita la crittografia dei flussi elementari M2TS PlayReady per il protocollo di streaming HLS.We also deliver PlayReady M2TS elementary stream encryption for HLS streaming protocol.
  • La licenza per PlayReady viene recuperata dal server licenze di Servizi multimediali di Azure, mentre la licenza per Widevine viene recuperata dal server licenze castLabs.PlayReady license is retrieved from AMS license server and Widevine license is retrieved from castLabs license server.
  • Media Player decide automaticamente le licenze da recuperare in base alle caratteristiche della piattaforma client.Media Player automatically decides which license to fetch based on the client platform capability.

Generazione di token di autenticazione per ottenere una licenzaAuthentication token generation for getting a license

castLabs e Servizi multimediali di Azure supportano entrambi il formato di token JWT (JSON Web Token), necessario per autorizzare una licenza.Both castLabs and AMS support JWT (JSON Web Token) token format used to authorize a license.

Token JWT in Servizi multimediali di AzureJWT token in AMS

La tabella seguente descrive il token JWT usato in Servizi multimediali di Azure.The following table describes JWT token in AMS.

IssuerIssuer Stringa dell'autorità di certificazione rilasciata dal servizio token di sicurezza sceltoIssuer string from the chosen Secure Token Service (STS)
AudienceAudience Stringa dei destinatari rilasciata dal servizio token di sicurezza usatoAudience string from the used STS
ClaimsClaims Set di attestazioniA set of claims
NotBeforeNotBefore Validità di inizio del tokenStart validity of the token
ExpiresExpires Validità di fine del tokenEnd validity of the token
SigningCredentialsSigningCredentials Chiave condivisa tra il server licenze PlayReady, il server licenze castLabs e il servizio token di sicurezza (STS); può essere una chiave simmetrica o asimmetrica.The key that is shared among PlayReady License Server, castLabs License Server and STS, it could be either symmetric or asymmetric key.

Token JWT in castLabsJWT token in castLabs

La tabella seguente descrive il token JWT usato in castLabs.The following table describes JWT token in castLabs.

NomeName DescrizioneDescription
optDataoptData Stringa JSON contenente informazioni relative all'utente.A JSON string containing information about you.
crtcrt Stringa JSON contenente informazioni sull'asset, sulla relativa licenza e sui diritti di riproduzione.A JSON string containing information about the asset, its license info and playback rights.
iatiat Data e ora corrente nel periodo.The current datetime in epoch.
jtijti Identificatore univoco per il token (ogni token può essere usato una sola volta nel sistema castLabs).A unique identifier about this token (every token can only be used once in the castLabs system).

Configurazione della soluzione di esempioSample solution set up

La soluzione di esempio è costituita da due progetti:The sample solution consists of two projects:

  • Un'app console che consente di impostare le restrizioni DRM su un asset già acquisito, sia per PlayReady sia per Widevine.A console app that can be used to set DRM restrictions on an already ingested asset, for both PlayReady and Widevine.
  • Un'applicazione Web incaricata della distribuzione dei token, che possono essere considerati come una versione molto semplificata di un servizio token di sicurezza.A Web Application that hands out tokens, which could be seen as a VERY SIMPLIFIED version of an STS.

Per usare l'applicazione console:To use the console application:

  1. Modificare il file app.config per impostare le credenziali di Servizi multimediali di Azure, le credenziali di castLabs, la configurazione del servizio token di sicurezza e la chiave condivisa.Change the app.config to setup AMS credentials, castLabs credentials, STS configuration and shared key.
  2. Caricare un asset in Servizi multimediali di Azure.Upload an Asset into AMS.
  3. Ottenere l'UUID dall'asset caricato e modificare la riga 32 nel file Program.cs:Get the UUID from the uploaded Asset, and change Line 32 in the Program.cs file:

    var objIAsset = _context.Assets.Where(x => x.Id == "nb:cid:UUID:dac53a5d-1500-80bd-b864-f1e4b62594cf").FirstOrDefault();var objIAsset = _context.Assets.Where(x => x.Id == "nb:cid:UUID:dac53a5d-1500-80bd-b864-f1e4b62594cf").FirstOrDefault();

  4. Usare un ID asset per assegnare un nome all'asset nel sistema castLabs (riga 44 nel file Program.cs).Use an AssetId for naming the asset in the castLabs system (Line 44 in the Program.cs file).

    È necessario impostare l'ID asset per castLabs: deve essere una stringa alfanumerica univoca.You must set AssetId for castLabs; it needs to be a unique alphanumeric string.

  5. Eseguire il programma.Run the program.

Per usare l'applicazione Web (STS):To use the Web Application (STS):

  1. Modificare il file web.config per impostare l'ID società di castlabs, la configurazione del servizio token di sicurezza e la chiave condivisa.Change the web.config to setup castlabs merchant ID, the STS configuration and the shared key.
  2. Eseguire la distribuzione nei siti Web di Azure.Deploy to Azure Websites.
  3. Passare al sito Web.Navigate to the website.

Riproduzione di un videoPlaying back a video

Per riprodurre un video crittografato con la crittografia comune (PlayReady e/o Widevine), è possibile usare Azure Media Player.To playback a video encrypted with common encryption (PlayReady and/or Widevine), you can use the Azure Media Player. Quando si esegue l'app console, vengono restituiti l'ID della chiave simmetrica e l'URL del manifesto.When running the console app, the Content Key ID and the Manifest URL are echoed.

  1. Aprire una nuova scheda e avviare il servizio token di sicurezza: http://[yourStsName].azurewebsites.net/api/token/assetid/[yourCastLabsAssetId]/contentkeyid/[thecontentkeyid].Open a new tab and launch your STS: http://[yourStsName].azurewebsites.net/api/token/assetid/[yourCastLabsAssetId]/contentkeyid/[thecontentkeyid].
  2. Accedere a Azure Media Player.Go to Azure Media Player.
  3. Incollare l'URL di streaming Paste in the streaming URL.
  4. Scegliere la casella di controllo Opzioni avanzate .Click the Advanced Options checkbox.
  5. Nell'elenco a discesa Protezione , selezionare PlayReady e/o Widevine.In the Protection dropdown, select PlayReady and/or Widevine.
  6. Incollare il token ottenuto dal servizio token di sicurezza nella casella di testo Token.Paste the token that you got from your STS in the Token textbox.

    Quando si usa il server licenze castLabs, non è necessario aggiungere il prefisso "Bearer=" davanti al token.The castLab license server does not need the “Bearer=” prefix in front of the token. Se presente, quindi, è necessario rimuoverlo prima di inviare il token.So please remove that before submitting the token.

  7. Aggiornare il lettore.Update the player.
  8. A questo punto, dovrebbe essere possibile riprodurre il video.The video should be playing.

Percorsi di apprendimento di Servizi multimedialiMedia Services learning paths

Altre informazioni sui percorsi di apprendimento di Servizi multimediali di Azure:Read about the Azure Media Services learning paths:

Fornire commenti e suggerimentiProvide feedback

Usare il forum di suggerimenti degli utenti per fornire commenti e suggerimenti su come migliorare Servizi multimediali di Azure.Use the User Voice forum to provide feedback and make suggestions on how to improve Azure Media Services. È anche possibile passare direttamente a una delle categorie seguenti:You also can go directly to one of the following categories: