CENC con il controllo tramite più DRM e accesso: un progetto di riferimento e l'implementazione in Azure e servizi multimediali di AzureCENC with multi-DRM and access control: A reference design and implementation on Azure and Azure Media Services

IntroduzioneIntroduction

Progettazione e creazione di un sottosistema di digital rights management (DRM) per un over-the-top (OTT) o soluzioni di flusso in linea è un'attività complessa.Designing and building a digital rights management (DRM) subsystem for an over-the-top (OTT) or online streaming solution is a complex task. Operatori/online provider video affidano in genere questa attività per i provider di servizi DRM specializzate.Operators/online video providers typically outsource this task to specialized DRM service providers. L'obiettivo di questo documento è presente un progetto di riferimento e l'implementazione di un sottosistema DRM end-to-end in una soluzione di flusso in linea o un OTT.The goal of this document is to present a reference design and implementation of an end-to-end DRM subsystem in an OTT or online streaming solution.

I lettori di destinazione per questo documento sono tecnici che operano in sottosistemi DRM di OTT o soluzioni di flusso/multiscreen online o i lettori di utenti interessati a sottosistemi DRM.The targeted readers for this document are engineers who work in DRM subsystems of OTT or online streaming/multiscreen solutions or readers who are interested in DRM subsystems. Il presupposto è che familiarità con almeno una delle tecnologie DRM sul mercato, ad esempio PlayReady, Widevine, FairPlay o accesso Adobe Reader.The assumption is that readers are familiar with at least one of the DRM technologies on the market, such as PlayReady, Widevine, FairPlay, or Adobe Access.

È inoltre possibile includere la discussione di DRM, common encryption (CENC) con multi-DRM.In this discussion of DRM, we also include common encryption (CENC) with multi-DRM. Una tendenza principale nel flusso in linea e del settore OTT consiste nell'utilizzare CENC con DRM più nativa su varie piattaforme client.A major trend in online streaming and the OTT industry is to use CENC with multi-native DRM on various client platforms. Questa tendenza è uno spostamento a quello precedente utilizzato un singolo DRM e il relativo client SDK per diverse piattaforme client.This trend is a shift from the previous one that used a single DRM and its client SDK for various client platforms. Quando si utilizza CENC con DRM più native, PlayReady sia Widevine vengono crittografati in base il Common Encryption (CENC ISO/IEC 23001-7) specifica.When you use CENC with multi-native DRM, both PlayReady and Widevine are encrypted per the Common Encryption (ISO/IEC 23001-7 CENC) specification.

I vantaggi di CENC con multi-DRM vengono:The benefits of CENC with multi-DRM are that it:

  • Consente di ridurre il costo di crittografia, perché viene utilizzato un processo di crittografia solo per le piattaforme diverse con relativo DRMs nativo.Reduces encryption cost because a single encryption process is used to target different platforms with its native DRMs.
  • Riduce i costi di gestione asset crittografato perché è necessaria una sola copia di un asset crittografato.Reduces the cost of managing encrypted assets because only a single copy of encrypted assets is needed.
  • Elimina client DRM costi della licenza perché il client nativo di DRM è in genere gratuito per la piattaforma nativa.Eliminates DRM client licensing cost because the native DRM client is usually free on its native platform.

Microsoft è un promotore active di trattino e CENC con alcuni principali del settore.Microsoft is an active promoter of DASH and CENC together with some major industry players. Servizi multimediali di Azure fornisce il supporto per DASH e CENC.Azure Media Services provides support for DASH and CENC. Per gli annunci di recente, vedere i seguenti blog:For recent announcements, see the following blogs:

Panoramica dell'articoloOverview of this article

Gli obiettivi di questo articolo sono:The goals of this article are to:

  • Fornire un progetto di riferimento di un sottosistema DRM che utilizza CENC con multi-DRM.Provide a reference design of a DRM subsystem that uses CENC with multi-DRM.
  • Fornire un'implementazione di riferimento su una piattaforma di servizi di Azure o dei supporti.Provide a reference implementation on an Azure/Media Services platform.
  • Discutere alcuni argomenti di progettazione e implementazione.Discuss some design and implementation topics.

Nell'articolo, il termine "multi-DRM" vengono trattati i seguenti prodotti:In the article, the term "multi-DRM" covers the following products:

  • Microsoft PlayReadyMicrosoft PlayReady
  • Google WidevineGoogle Widevine
  • Apple FairPlayApple FairPlay

Nella tabella seguente sono riepilogate le app di piattaforma nativa/nativo e browser supportati da ogni DRM.The following table summarizes the native platform/native app and browsers supported by each DRM.

Piattaforma clientClient platform Supporto nativo DRMNative DRM support Browser/appBrowser/app Formati di streamingStreaming formats
Smart TV, STB operatore, STB OTTSmart TVs, operator STBs, OTT STBs Principalmente PlayReady e/o Widevine e/o altroPlayReady primarily, and/or Widevine, and/or other Linux, Opera, WebKit, altriLinux, Opera, WebKit, other Vari formatiVarious formats
Dispositivi Windows 10 (PC Windows, i Tablet Windows, Windows Phone, Xbox)Windows 10 devices (Windows PC, Windows tablets, Windows Phone, Xbox) PlayReadyPlayReady MS Edge/IE11/EMEMS Edge/IE11/EME


Piattaforma UWP (Universal Windows Platform)Universal Windows Platform
TRATTINO (per HLS, PlayReady non è supportato)DASH (for HLS, PlayReady isn't supported)

DASH, Smooth Streaming (per HLS, PlayReady non è supportato)DASH, Smooth Streaming (for HLS, PlayReady isn't supported)
Dispositivi Android (telefoni, tablet, TV)Android devices (phone, tablet, TV) WidevineWidevine Chrome/EMEChrome/EME DASH, HLSDASH, HLS
iOS (iPhone, iPad), client OS X e Apple TViOS (iPhone, iPad), OS X clients and Apple TV FairPlayFairPlay Safari 8+/EMESafari 8+/EME HLSHLS

Considerando lo stato corrente della distribuzione per ogni DRM, un servizio richiede in genere implementare due o tre DRMs per assicurarsi che tutti i tipi di endpoint si indirizza il migliore.Considering the current state of deployment for each DRM, a service typically wants to implement two or three DRMs to make sure you address all the types of endpoints in the best way.

Occorre raggiungere un compromesso tra la complessità della logica del servizio e la complessità sul lato client per ottenere un certo livello di esperienza utente nei vari client.There is a tradeoff between the complexity of the service logic and the complexity on the client side to reach a certain level of user experience on the various clients.

Per effettuare la selezione, tenere presenti:To make your selection, keep in mind:

  • PlayReady è implementata in modo nativo in ogni dispositivo di Windows, in alcuni dispositivi Android e disponibili tramite il SDK di software su praticamente qualsiasi piattaforma.PlayReady is natively implemented in every Windows device, on some Android devices, and available through software SDKs on virtually any platform.
  • Widevine viene implementato in modo nativo in tutti i dispositivi Android, Chrome e altri dispositivi.Widevine is natively implemented in every Android device, in Chrome, and in some other devices.
  • FairPlay è disponibile solo in iOS e nei client Mac OS o tramite iTunes.FairPlay is available only on iOS and Mac OS clients or through iTunes.

Sono disponibili due opzioni per un tipico multi-DRM:There are two options for a typical multi-DRM:

  • PlayReady e WidevinePlayReady and Widevine
  • PlayReady, Widevine e FairPlayPlayReady, Widevine, and FairPlay

Progettazione di riferimentoA reference design

In questa sezione viene presentato un progetto di riferimento che è indipendente per le tecnologie utilizzate per l'implementazione.This section presents a reference design that is agnostic to the technologies used to implement it.

Un sottosistema DRM può contenere i seguenti componenti:A DRM subsystem can contain the following components:

  • Gestione della chiaveKey management
  • Creazione pacchetto DRMDRM packaging
  • Distribuzione di licenze DRMDRM license delivery
  • Controllo dei dirittiEntitlement check
  • Autenticazione/autorizzazioneAuthentication/authorization
  • LettorePlayer
  • Rete origine/contenuti (CDN)Origin/content delivery network (CDN)

Il diagramma seguente illustra l'interazione di alto livello tra i componenti in un sottosistema DRM:The following diagram illustrates the high-level interaction among the components in a DRM subsystem:

Sottosistema DRM con CENC

La progettazione prevede tre livelli di base:The design has three basic layers:

  • Un livello di back-office (nero) non è esposta esternamente.A back-office layer (black) is not exposed externally.
  • Un livello di rete Perimetrale (blu scuro) contiene tutti gli endpoint rivolte al pubblico.A DMZ layer (dark blue) contains all the endpoints that face the public.
  • Un livello di internet pubblico (celeste) contiene la rete CDN e lettori con il traffico attraverso la rete internet pubblica.A public internet layer (light blue) contains the CDN and players with traffic across the public internet.

Inoltre dovrebbe esserci uno strumento di gestione dei contenuti di controllo protezione DRM, indipendentemente dal fatto sia la crittografia statica o dinamica.There also should be a content management tool to control DRM protection, regardless of whether it's static or dynamic encryption. Gli input per la crittografia DRM includono:The inputs for DRM encryption include:

  • Contenuto del video MBRMBR video content
  • Chiave simmetricaContent key
  • URL di acquisizione di licenzeLicense acquisition URLs

Ecco il flusso di alto livello durante la fase di riproduzione:Here's the high-level flow during playback time:

  • L'utente è autenticato.The user is authenticated.
  • Viene creato un token di autorizzazione per l'utente.An authorization token is created for the user.
  • Il contenuto protetto con DRM (manifesto) viene scaricato al lettore.DRM protected content (manifest) is downloaded to the player.
  • Il giocatore invia una richiesta di acquisizione licenza per il server licenze con una chiave ID e un token di autorizzazione.The player submits a license acquisition request to license servers together with a key ID and an authorization token.

Nella sezione seguente viene illustrata la progettazione della gestione delle chiavi.The following section discusses the design of key management.

Entità ContentKey-a-assetContentKey-to-asset ScenarioScenario
1-a-11-to-1 È il caso più semplice.The simplest case. Consente il controllo più dettagliato,It provides the finest control. Ma in questo modo vengono in genere comporta il costo più elevato di recapito licenza.But this arrangement generally results in the highest license delivery cost. Come minimo, è necessaria per ogni asset protetto con una richiesta di licenza.At minimum, one license request is required for each protected asset.
1-a-molti1-to-many È possibile usare la stessa chiave simmetrica per più asset.You could use the same content key for multiple assets. Ad esempio, per tutte le risorse in un gruppo logico, ad esempio un genere o il subset di un genere o gene movie, è possibile utilizzare una singola chiave simmetrica.For example, for all the assets in a logical group, such as a genre or the subset of a genre (or movie gene), you can use a single content key.
Molti-a-1Many-to-1 Per ogni asset sono necessarie più chiavi simmetriche.Multiple content keys are needed for each asset.

Ad esempio, se è necessario applicare la protezione CENC dinamica con multi-DRM per MPEG-DASH e la crittografia dinamica AES-128 per HLS, è necessario due chiavi simmetriche separate.For example, if you need to apply dynamic CENC protection with multi-DRM for MPEG-DASH and dynamic AES-128 encryption for HLS, you need two separate content keys. Ogni chiave simmetrica è necessario un proprio ContentKeyType.Each content key needs its own ContentKeyType. (Per la chiave simmetrica utilizzata per la protezione CENC dinamica, utilizzare ContentKeyType.CommonEncryption.(For the content key used for dynamic CENC protection, use ContentKeyType.CommonEncryption. Per la chiave simmetrica utilizzata per la crittografia dinamica AES-128, utilizzare ContentKeyType.EnvelopeEncryption).For the content key used for dynamic AES-128 encryption, use ContentKeyType.EnvelopeEncryption.)

Ad esempio, nella protezione CENC del contenuto DASH, in teoria, è possibile utilizzare una chiave simmetrica per proteggere il flusso video e un'altra chiave simmetrica per proteggere il flusso audio.As another example, in CENC protection of DASH content, in theory, you can use one content key to protect the video stream and another content key to protect the audio stream.
Molti-a-moltiMany-to-many Combinazione dei due scenari precedenti.Combination of the previous two scenarios. Un set di chiavi simmetriche è usato per ognuna delle attività più nello stesso gruppo di risorse.One set of content keys is used for each of the multiple assets in the same asset group.

Un altro fattore importante da considerare è l'utilizzo di licenze permanenti e non persistenti.Another important factor to consider is the use of persistent and nonpersistent licenses.

Perché queste considerazioni sono importanti?Why are these considerations important?

Se si utilizza un cloud pubblico per il recapito di licenza, licenze permanenti e non persistenti avere un impatto diretto al costo di recapito di licenza.If you use a public cloud for license delivery, persistent and nonpersistent licenses have a direct impact on license delivery cost. Due casi di progettazione seguenti hanno lo scopo di illustrare:The following two different design cases serve to illustrate:

  • Una sottoscrizione mensile: utilizzare una licenza permanente e mapping di key-asset contenuto 1-a-molti.Monthly subscription: Use a persistent license and 1-to-many content key-to-asset mapping. Ad esempio, per i film dei figli, è utilizzare una singola chiave simmetrica per la crittografia.For example, for all the kids' movies, we use a single content key for encryption. In questo caso:In this case:

    Numero totale di licenze richiesto per filmati/dispositivo tutti i figli = 1Total number of licenses requested for all kids' movies/device = 1

  • Una sottoscrizione mensile: utilizzare una licenza non persistente e mapping 1 a 1 tra risorse e di chiave simmetrica.Monthly subscription: Use a nonpersistent license and 1-to-1 mapping between content key and asset. In questo caso:In this case:

    Numero totale di licenze richiesto per filmati/dispositivo tutti i figli = [numero di filmati controllata] x [numero di sessioni]Total number of licenses requested for all kids' movies/device = [number of movies watched] x [number of sessions]

Due diversi modelli generare modelli di richieste di licenza molto diversi.The two different designs result in very different license request patterns. I diversi motivi comportare costo se il servizio di recapito licenza viene fornito da un cloud pubblico, ad esempio servizi multimediali di recapito di licenze diverso.The different patterns result in different license delivery cost if license delivery service is provided by a public cloud such as Media Services.

Eseguire il mapping di progettazione per la tecnologia per l'implementazioneMap design to technology for implementation

Successivamente, la struttura generica viene eseguito il mapping per le tecnologie della piattaforma di servizi multimediali di Azure/specificando la tecnologia da utilizzare per ogni blocco di compilazione.Next, the generic design is mapped to technologies on the Azure/Media Services platform by specifying which technology to use for each building block.

Nella tabella seguente viene illustrato il mapping.The following table shows the mapping.

Blocchi predefinitiBuilding block TechnologyTechnology
LettorePlayer Azure Media PlayerAzure Media Player
Provider di identità (IDP)Identity provider (IDP) Azure Active Directory (Azure AD)Azure Active Directory (Azure AD)
Servizio token di sicurezza (STS)Security token service (STS) Azure ADAzure AD
Flusso di lavoro protezione DRMDRM protection workflow Protezione dinamica di servizi multimedialiMedia Services dynamic protection
Distribuzione di licenze DRMDRM license delivery * Recapito di licenza di servizi multimediali (PlayReady, Widevine, FairPlay)* Media Services license delivery (PlayReady, Widevine, FairPlay)
* Server licenze Axinom* Axinom license server
* Server di licenze PlayReady personalizzato* Custom PlayReady license server
OrigineOrigin Endpoint di streaming di servizi multimedialiMedia Services streaming endpoint
Gestione delle chiaviKey management Non necessaria per l'implementazione di riferimentoNot needed for reference implementation
Gestione dei contenutiContent management Applicazione console in C#A C# console application

In altre parole, sia IDP e servizio token di sicurezza vengono utilizzati con Azure AD.In other words, both IDP and STS are used with Azure AD. Il API di Azure Media Player viene utilizzato per il lettore.The Azure Media Player API is used for the player. Servizi multimediali e Media Player supportano entrambi DASH e CENC con multi-DRM.Both Media Services and Media Player support DASH and CENC with multi-DRM.

Il diagramma seguente mostra la struttura complessiva e flusso con il mapping di tecnologia precedente:The following diagram shows the overall structure and flow with the previous technology mapping:

CENC su servizi multimediali

Per impostare la crittografia dinamica CENC, lo strumento di gestione dei contenuti Usa i seguenti input:To set up dynamic CENC encryption, the content management tool uses the following inputs:

  • Apri contenutoOpen content
  • Chiave simmetrica dalla chiave di generazione e gestioneContent key from key generation/management
  • URL di acquisizione di licenzeLicense acquisition URLs
  • Un elenco di informazioni da Azure ADA list of information from Azure AD

Di seguito è riportato l'output dello strumento di gestione dei contenuti:Here's the output of the content management tool:

  • ContentKeyAuthorizationPolicy contiene le specifiche di licenza DRM e specifica in modo recapito licenza consente di verificare un JSON Web Token JWT ().ContentKeyAuthorizationPolicy contains the specification on how license delivery verifies a JSON Web Token (JWT) and DRM license specifications.
  • AssetDeliveryPolicy contiene le specifiche sui flussi di formato, protezione DRM e gli URL di acquisizione di licenze.AssetDeliveryPolicy contains specifications on streaming format, DRM protection, and license acquisition URLs.

Ecco il flusso in fase di esecuzione:Here's the flow during runtime:

  • Quando l'autenticazione utente, viene generato un JWT.Upon user authentication, a JWT is generated.
  • Tra le attestazioni contenute nel token JWT è un'attestazione di gruppi che contiene l'oggetto gruppo ID EntitledUserGroup.One of the claims contained in the JWT is a groups claim that contains the group object ID EntitledUserGroup. Questa attestazione viene utilizzata per passare il controllo sui diritti.This claim is used to pass the entitlement check.
  • Windows Media player Scarica manifesto client del contenuto protetto con CENC e identifica le operazioni seguenti:The player downloads the client manifest of CENC-protected content and identifies the following:
    • ID chiave.Key ID.
    • Il contenuto è protetto CENC.The content is CENC protected.
    • URL di acquisizione delle licenze.License acquisition URLs.
  • Windows Media player effettua una richiesta di acquisizione licenza in base a/DRM i browser supportati.The player makes a license acquisition request based on the browser/DRM supported. La licenza acquisizione richiesta, la chiave che ID e il token JWT vengono inviati.In the license acquisition request, the key ID and the JWT are also submitted. Il servizio di recapito licenza verifica il token JWT e le attestazioni contenute prima di emettere la licenza necessaria.The license delivery service verifies the JWT and the claims contained before it issues the needed license.

ImplementazioneImplementation

Procedure di implementazioneImplementation procedures

L'implementazione include i passaggi seguenti:Implementation includes the following steps:

  1. Preparare l'attività di test.Prepare test assets. Codificare/creazione pacchetto di un test di video a più velocità in bit frammentati MP4 in servizi multimediali.Encode/package a test video to multi-bitrate fragmented MP4 in Media Services. Questo asset è non protetta con DRM.This asset is not DRM protected. Protezione DRM avviene protezione dinamica in un secondo momento.DRM protection is done by dynamic protection later.

  2. Creare una chiave ID e una chiave simmetrica (facoltativamente da un seme chiave).Create a key ID and a content key (optionally from a key seed). In questo caso, il sistema di gestione delle chiavi non è necessaria perché una sola chiave ID e la chiave simmetrica sono necessari per un paio di attività di test.In this instance, the key management system isn't needed because only a single key ID and content key are required for a couple of test assets.

  3. Utilizzare l'API di servizi multimediali per configurare servizi di recapito più DRM licenza per l'asset di test.Use the Media Services API to configure multi-DRM license delivery services for the test asset. Se si utilizza il server licenze personalizzati dall'azienda o fornitori della società anziché servizi di licenza in servizi multimediali, è possibile ignorare questo passaggio.If you use custom license servers by your company or your company's vendors instead of license services in Media Services, you can skip this step. È possibile specificare gli URL di acquisizione licenza nel passaggio quando si configura il recapito di licenza.You can specify license acquisition URLs in the step when you configure license delivery. L'API di servizi multimediali è necessaria per specificare alcune configurazioni dettagliate, ad esempio restrizione dei criteri di autorizzazione e i modelli di risposta di licenza per diversi servizi di licenza DRM.The Media Services API is needed to specify some detailed configurations, such as authorization policy restriction and license response templates for different DRM license services. In questo momento, il portale di Azure non fornisce l'interfaccia utente necessaria per questa configurazione.At this time, the Azure portal doesn't provide the needed UI for this configuration. Per informazioni a livello di API e codice di esempio, vedere usare PlayReady e/o Widevine crittografia comune dinamica.For API-level information and sample code, see Use PlayReady and/or Widevine dynamic common encryption.

  4. Utilizzare l'API di servizi multimediali per configurare i criteri di recapito di asset per l'asset di test.Use the Media Services API to configure the asset delivery policy for the test asset. Per informazioni a livello di API e codice di esempio, vedere usare PlayReady e/o Widevine crittografia comune dinamica.For API-level information and sample code, see Use PlayReady and/or Widevine dynamic common encryption.

  5. Creare e configurare un tenant di Azure AD in Azure.Create and configure an Azure AD tenant in Azure.

  6. Creare alcuni gruppi e account utente nel tenant di Azure AD.Create a few user accounts and groups in your Azure AD tenant. Creare almeno un gruppo "Diritto utente" e aggiungere un utente a questo gruppo.Create at least an "Entitled User" group, and add a user to this group. Gli utenti in questo gruppo di passare il controllo sui diritti acquisizione della licenza.Users in this group pass the entitlement check in license acquisition. Gli utenti non di questo gruppo non passa il controllo di autenticazione e non è possibile acquisire una licenza.Users not in this group fail to pass the authentication check and can't acquire a license. L'appartenenza al gruppo "Utenti intitolata" è un'attestazione di gruppi necessari nel token JWT rilasciati da Azure AD.Membership in this "Entitled User" group is a required groups claim in the JWT issued by Azure AD. Specificare questo requisito di attestazione nel passaggio quando si configurano servizi multimediali di multi-DRM licenza.You specify this claim requirement in the step when you configure multi-DRM license delivery services.

  7. Creare un'applicazione MVC ASP.NET per ospitare un lettore video.Create an ASP.NET MVC app to host your video player. Questa applicazione ASP.NET è protetto con l'autenticazione utente nel tenant di Azure AD.This ASP.NET app is protected with user authentication against the Azure AD tenant. Attestazioni appropriate sono incluse nel token di accesso ottenuto dopo l'autenticazione utente.Proper claims are included in the access tokens obtained after user authentication. Si consiglia di OpenID Connect API per questo passaggio.We recommend OpenID Connect API for this step. Installare i pacchetti NuGet seguenti:Install the following NuGet packages:

    • Install-Package Microsoft.Azure.ActiveDirectory.GraphClientInstall-Package Microsoft.Azure.ActiveDirectory.GraphClient
    • Install-Package Microsoft.Owin.Security.OpenIdConnectInstall-Package Microsoft.Owin.Security.OpenIdConnect
    • Install-Package Microsoft.Owin.Security.CookiesInstall-Package Microsoft.Owin.Security.Cookies
    • Install-Package Microsoft.Owin.Host.SystemWebInstall-Package Microsoft.Owin.Host.SystemWeb
    • Install-Package Microsoft.IdentityModel.Clients.ActiveDirectoryInstall-Package Microsoft.IdentityModel.Clients.ActiveDirectory
  8. Creare un lettore utilizzando il API di Azure Media Player.Create a player by using the Azure Media Player API. Utilizzare il API di Azure Media Player ProtectionInfo per specificare la tecnologia DRM da utilizzare su diverse piattaforme DRM.Use the Azure Media Player ProtectionInfo API to specify which DRM technology to use on different DRM platforms.

  9. Nella tabella seguente viene illustrata la matrice di test.The following table shows the test matrix.

    DRMDRM BrowserBrowser Risultato per il diritto utenteResult for entitled user Risultati per l'utente unentitledResult for unentitled user
    PlayReadyPlayReady Microsoft Edge o Internet Explorer 11 in Windows 10Microsoft Edge or Internet Explorer 11 on Windows 10 SucceedSucceed FailFail
    WidevineWidevine Chrome in Windows 10Chrome on Windows 10 SucceedSucceed FailFail
    FairPlayFairPlay Da definireTBD

Per informazioni su come configurare Azure AD per un'app di Windows Media player di ASP.NET MVC, vedere integra un'app basata su MVC OWIN servizi multimediali di Azure con Azure Active Directory e limitare il recapito del contenuto di chiave in base alle attestazioni JWT.For information on how to set up Azure AD for an ASP.NET MVC player app, see Integrate an Azure Media Services OWIN MVC-based app with Azure Active Directory and restrict content key delivery based on JWT claims.

Per ulteriori informazioni, vedere l'autenticazione con token JWT in servizi multimediali di Azure e la crittografia dinamica.For more information, see JWT token authentication in Azure Media Services and dynamic encryption.

Per informazioni su Azure AD:For information on Azure AD:

Alcuni problemi di implementazioneSome issues in implementation

Utilizzare le informazioni sulla risoluzione dei problemi seguenti per informazioni su problemi di implementazione.Use the following troubleshooting information for help with implementation issues.

  • L'autorità emittente URL deve terminare con "/".The issuer URL must end with "/". Il gruppo di destinatari deve essere l'ID di Windows Media player applicazione client.The audience must be the player application client ID. Inoltre, aggiungere "/" alla fine dell'URL dell'autorità di certificazione.Also, add "/" at the end of the issuer URL.

      <add key="ida:audience" value="[Application Client ID GUID]" />
      <add key="ida:issuer" value="https://sts.windows.net/[AAD Tenant ID]/" />
    

    Nel JWT decodificatore, vedrai aud e iss, come illustrato nel token JWT:In the JWT Decoder, you see aud and iss, as shown in the JWT:

    Token JSON Web

  • Aggiungere le autorizzazioni per l'applicazione in Azure AD sul configura scheda dell'applicazione.Add permissions to the application in Azure AD on the Configure tab of the application. Sono necessarie autorizzazioni per ogni applicazione, le versioni locali e distribuite.Permissions are required for each application, both local and deployed versions.

    Autorizzazioni

  • Utilizzare l'emittente corretto quando si configura la protezione CENC dinamica.Use the correct issuer when you set up dynamic CENC protection.

      <add key="ida:issuer" value="https://sts.windows.net/[AAD Tenant ID]/"/>
    

    Non utilizzare le operazioni seguenti:The following doesn't work:

      <add key="ida:issuer" value="https://willzhanad.onmicrosoft.com/" />
    

    Il GUID è l'ID del tenant di Azure AD.The GUID is the Azure AD tenant ID. Il GUID è reperibile nel endpoint menu di scelta rapida nel portale di Azure.The GUID can be found in the Endpoints pop-up menu in the Azure portal.

  • Concedere i privilegi delle attestazioni di appartenenza al gruppo.Grant group membership claims privileges. Assicurarsi che di seguito è riportato nel file manifesto dell'applicazione di Azure AD:Make sure the following is in the Azure AD application manifest file:

    "groupMembershipClaims": "All" (il valore predefinito è null)"groupMembershipClaims": "All" (the default value is null)

  • Impostare il TokenType corretto durante la creazione di requisiti di limitazione.Set the proper TokenType when you create restriction requirements.

      objTokenRestrictionTemplate.TokenType = TokenType.JWT;
    

    Poiché si aggiunge il supporto per i JWT (Azure AD), oltre a SWT (ACS), il valore predefinito TokenType è TokenType.JWT.Because you add support for JWT (Azure AD) in addition to SWT (ACS), the default TokenType is TokenType.JWT. Se si usa SWT/ACS, è necessario impostare il token per TokenType.SWT.If you use SWT/ACS, you must set the token to TokenType.SWT.

Argomenti aggiuntivi per l'implementazioneAdditional topics for implementation

Questa sezione illustra alcuni argomenti aggiuntivi nella progettazione e implementazione.This section discusses some additional topics in design and implementation.

HTTP o HTTPS?HTTP or HTTPS?

L'applicazione di Windows Media player di ASP.NET MVC deve supportare le operazioni seguenti:The ASP.NET MVC player application must support the following:

  • Autenticazione degli utenti tramite Azure AD, ovvero HTTPS.User authentication through Azure AD, which is under HTTPS.
  • Exchange JWT tra il client e Azure AD, ovvero HTTPS.JWT exchange between the client and Azure AD, which is under HTTPS.
  • Acquisizione della licenza DRM dal client, che deve essere gestito tramite HTTPS se il recapito di licenza viene fornito da servizi multimediali.DRM license acquisition by the client, which must be under HTTPS if license delivery is provided by Media Services. La famiglia di prodotti PlayReady non impone HTTPS per il recapito di licenza.The PlayReady product suite doesn't mandate HTTPS for license delivery. Se il server licenze PlayReady è all'esterno di servizi multimediali, è possibile utilizzare HTTP o HTTPS.If your PlayReady license server is outside Media Services, you can use either HTTP or HTTPS.

L'applicazione di Windows Media player ASP.NET usa HTTPS come procedura consigliata, in modo Media Player è presente in una pagina in HTTPS.The ASP.NET player application uses HTTPS as a best practice, so Media Player is on a page under HTTPS. Tuttavia, HTTP è preferibile per lo streaming, pertanto è necessario tenere presente il problema di contenuto misto.However, HTTP is preferred for streaming, so you need to consider the issue of mixed content.

  • Il browser non accetta contenuto misto.The browser doesn't allow mixed content. Ma i plug-in Silverlight e il plug-in per OSMF smooth e TRATTINI.But plug-ins like Silverlight and the OSMF plug-in for smooth and DASH do allow it. Contenuto misto è un problema di sicurezza a causa delle minacce del possibilità di inserire JavaScript dannoso, che può generare i dati dei clienti a rischio.Mixed content is a security concern because of the threat of the ability to inject malicious JavaScript, which can cause customer data to be at risk. Browser bloccare questa funzionalità per impostazione predefinita.Browsers block this capability by default. L'unico modo per aggirare il è sul lato server (origine), consentendo a tutti i domini (indipendentemente dal protocollo HTTPS o HTTP).The only way to work around it is on the server (origin) side by allowing all domains (regardless of HTTPS or HTTP). ma probabilmente nemmeno questa è una buona idea.This is probably not a good idea either.
  • Evitare di contenuto misto.Avoid mixed content. L'applicazione di lettore e il lettore deve usare HTTP o HTTPS.Both the player application and Media Player should use HTTP or HTTPS. Durante la riproduzione di contenuto misto, il tecnico silverlightSS richiede la cancellazione di un avviso di contenuto misto.When playing mixed content, the silverlightSS tech requires clearing a mixed-content warning. Il tecnico flashSS gestisce il contenuto misto senza un avviso di contenuto misto.The flashSS tech handles mixed content without a mixed-content warning.
  • Se l'endpoint di streaming è stato creato prima di agosto 2014, essa non supporta HTTPS.If your streaming endpoint was created before August 2014, it won't support HTTPS. In questo caso, creare e utilizzare un nuovo endpoint di streaming per HTTPS.In this case, create and use a new streaming endpoint for HTTPS.

Nell'implementazione di riferimento per contenuti protetti con DRM, l'applicazione e streaming sono in HTTPS.In the reference implementation for DRM-protected contents, both the application and streaming are under HTTPS. Per aprire contenuti, il lettore non è necessaria l'autenticazione o una licenza, pertanto è possibile utilizzare HTTP o HTTPS.For open contents, the player doesn't need authentication or a license, so you can use either HTTP or HTTPS.

Rollover della chiave per la firma di Azure Active DirectoryAzure Active Directory signing key rollover

Rollover della chiave di firma è un punto importante da prendere in considerazione nell'implementazione.Signing key rollover is an important point to take into consideration in your implementation. Se si ignora, il sistema finito infine smette di funzionare completamente entro sei settimane al massimo.If you ignore it, the finished system eventually stops working completely, within six weeks at the most.

Azure AD Usa gli standard del settore per stabilire un trust tra l'elemento e le applicazioni che usano Azure AD.Azure AD uses industry standards to establish trust between itself and applications that use Azure AD. In particolare, Azure AD usa una chiave per la firma costituita da una coppia di chiavi pubblica e privata.Specifically, Azure AD uses a signing key that consists of a public and private key pair. Quando Azure AD crea un token di sicurezza che contiene informazioni sull'utente, è firmato da Azure AD con una chiave privata prima che venga inviato all'applicazione.When Azure AD creates a security token that contains information about the user, it's signed by Azure AD with a private key before it's sent back to the application. Per verificare che il token sia valido e originati da Azure AD, l'applicazione deve convalidare la firma del token.To verify that the token is valid and originated from Azure AD, the application must validate the token's signature. L'applicazione utilizza la chiave pubblica esposta da Azure AD che è contenuto nel documento di metadati di federazione del tenant.The application uses the public key exposed by Azure AD that is contained in the tenant's federation metadata document. La chiave pubblica e la chiave di firma da cui deriva, è lo stesso utilizzato per tutti i tenant di Azure AD.This public key, and the signing key from which it derives, is the same one used for all tenants in Azure AD.

Per ulteriori informazioni sul rollover della chiave di Azure AD, vedere informazioni importanti sul rollover della chiave di firma in Azure AD.For more information on Azure AD key rollover, see Important information about signing key rollover in Azure AD.

Tra le coppia di chiavi pubblica / privata:Between the public-private key pair:

  • La chiave privata viene utilizzata da Azure AD per generare un token JWT.The private key is used by Azure AD to generate a JWT.
  • La chiave pubblica viene utilizzata da un'applicazione, ad esempio servizi di recapito DRM licenze in servizi multimediali per verificare il token JWT.The public key is used by an application such as DRM license delivery services in Media Services to verify the JWT.

Per motivi di sicurezza, Azure AD consente di ruotare il certificato periodicamente (ogni 6 settimane).For security purposes, Azure AD rotates the certificate periodically (every six weeks). In caso di violazione di sicurezza, il rollover della chiave può verificarsi a qualsiasi momento.In the case of security breaches, the key rollover can occur any time. Pertanto, i servizi di recapito di licenze in servizi multimediali è necessario aggiornare la chiave pubblica utilizzata come Azure AD ruota la coppia di chiavi.Therefore, the license delivery services in Media Services need to update the public key used as Azure AD rotates the key pair. In caso contrario, l'autenticazione del token in servizi multimediali non riesce e non viene eseguita alcuna licenza.Otherwise, token authentication in Media Services fails and no license is issued.

Per configurare questo servizio, impostare TokenRestrictionTemplate.OpenIdConnectDiscoveryDocument quando si configurano i servizi di recapito licenza DRM.To set up this service, you set TokenRestrictionTemplate.OpenIdConnectDiscoveryDocument when you configure DRM license delivery services.

Di seguito viene illustrato il flusso JWT:Here's the JWT flow:

  • Azure AD rilascia il token JWT con la chiave privata corrente per un utente autenticato.Azure AD issues the JWT with the current private key for an authenticated user.
  • Quando un lettore rileva un CENC con contenuto protetto con DRM a multipla, individua innanzitutto il token JWT rilasciati da Azure AD.When a player sees a CENC with multi-DRM protected content, it first locates the JWT issued by Azure AD.
  • Il lettore invia una richiesta di acquisizione di licenza con il token JWT a servizi di recapito delle licenze in servizi multimediali.The player sends a license acquisition request with the JWT to license delivery services in Media Services.
  • I servizi di recapito di licenze in servizi multimediali di utilizzano la chiave pubblica corrente/valido da Azure AD per verificare il token JWT prima di rilasciare le licenze.The license delivery services in Media Services use the current/valid public key from Azure AD to verify the JWT before issuing licenses.

Servizi multimediali di licenza DRM verificare sempre per la chiave pubblica corrente/valido da Azure AD.DRM license delivery services always check for the current/valid public key from Azure AD. La chiave pubblica presentata da Azure AD è la chiave utilizzata per verificare un token JWT rilasciati da Azure AD.The public key presented by Azure AD is the key used to verify a JWT issued by Azure AD.

Il rollover della chiave, cosa accade se si verifica dopo che Azure AD genera un token JWT ma prima di inviata il token JWT da lettori di servizi multimediali di licenza DRM in servizi multimediali per la verifica?What if the key rollover happens after Azure AD generates a JWT but before the JWT is sent by players to DRM license delivery services in Media Services for verification?

Poiché una chiave può essere eseguita il rollover in qualsiasi momento, più di una chiave pubblica valida è sempre disponibile nel documento di metadati di federazione.Because a key can be rolled over at any moment, more than one valid public key is always available in the federation metadata document. Recapito licenze di servizi multimediali è possibile utilizzare i tasti specificati nel documento.Media Services license delivery can use any of the keys specified in the document. Poiché una chiave può essere eseguito il rollback appena, un altro potrebbe essere relativa sostituzione e così via.Because one key might be rolled soon, another might be its replacement, and so forth.

Dove si trova il token di accesso?Where is the access token?

Se si osserva come un'app web chiama un'API app in identità applicazione con concessione di credenziali client OAuth 2.0, il flusso di autenticazione è il seguente:If you look at how a web app calls an API app under Application identity with OAuth 2.0 client credentials grant, the authentication flow is as follows:

  • Un utente accede ad Azure AD nell'applicazione web.A user signs in to Azure AD in the web application. Per ulteriori informazioni, vedere browser all'applicazione web.For more information, see Web browser to web application.
  • L'endpoint di autorizzazione di Azure AD reindirizza di nuovo l'agente utente all'applicazione client con un codice di autorizzazione.The Azure AD authorization endpoint redirects the user agent back to the client application with an authorization code. L'agente utente restituisce il codice di autorizzazione all'URI di reindirizzamento dell'applicazione client.The user agent returns the authorization code to the client application's redirect URI.
  • L'applicazione Web deve acquisire un token di accesso per l'autenticazione nell'API Web e il recupero della risorsa desiderata.The web application needs to acquire an access token so that it can authenticate to the web API and retrieve the desired resource. Effettua una richiesta all'endpoint token Azure AD e fornisce le credenziali, ID client e URI ID applicazione dell'API web.It makes a request to the Azure AD token endpoint and provides the credential, client ID, and web API's application ID URI. Presenta il codice di autorizzazione per dimostrare che l'utente ha concesso il consenso.It presents the authorization code to prove that the user consented.
  • Azure AD autentica l'applicazione e restituisce un token di accesso JWT usato per chiamare l'API web.Azure AD authenticates the application and returns a JWT access token that's used to call the web API.
  • Su HTTPS, l'applicazione web Usa il token di accesso JWT restituito per aggiungere la stringa JWT con una designazione "Bearer" nell'intestazione "Authorization" della richiesta all'API web.Over HTTPS, the web application uses the returned JWT access token to add the JWT string with a "Bearer" designation in the "Authorization" header of the request to the web API. L'API web convalida quindi il token JWT.The web API then validates the JWT. Se la convalida ha esito positivo, restituisce la risorsa desiderata.If validation is successful, it returns the desired resource.

In questo flusso di identità di applicazione, l'API web suppone che l'applicazione web autenticato l'utente.In this application identity flow, the web API trusts that the web application authenticated the user. Per questo motivo il modello è definito sottosistema attendibile.For this reason, this pattern is called a trusted subsystem. Il diagramma di flusso di autorizzazione viene descritto come autorizzazione-codice-flusso di concessione di funzionamento.The authorization flow diagram describes how authorization-code-grant flow works.

Acquisizione della licenza con restrizione token segue lo stesso modello di sottosistema attendibile.License acquisition with token restriction follows the same trusted subsystem pattern. Il servizio di distribuzione di licenze in servizi multimediali è il risorsa API web, o "back-end resource" che deve accedere a un'applicazione web.The license delivery service in Media Services is the web API resource, or the "back-end resource" that a web application needs to access. Dov'è quindi il token di accesso?So where is the access token?

Il token di accesso viene ottenuto da Azure AD.The access token is obtained from Azure AD. Dopo l'autenticazione dell'utente, viene restituito un codice di autorizzazione.After successful user authentication, an authorization code is returned. Il codice di autorizzazione viene quindi usato, con l'ID client e la chiave dell'applicazione, per scambiare il token di accesso.The authorization code is then used, together with the client ID and the app key, to exchange for the access token. Il token di accesso utilizzato per accedere a un'applicazione di "puntatore" che fa riferimento a o rappresenta il servizio di distribuzione di licenze di servizi multimediali.The access token is used to access a "pointer" application that points to or represents the Media Services license delivery service.

Per registrare e configurare l'app del puntatore in Azure AD, procedere come segue:To register and configure the pointer app in Azure AD, take the following steps:

  1. Nel tenant di Azure AD:In the Azure AD tenant:

    • Aggiungere un'applicazione (risorsa) con il https://[resource_name].azurewebsites.net/ URL sign-on.Add an application (resource) with the sign-on URL https://[resource_name].azurewebsites.net/.
    • Aggiungere un ID di app con l'URL di https://[aad_tenant_name].onmicrosoft.com/[resource_name].Add an app ID with the URL https://[aad_tenant_name].onmicrosoft.com/[resource_name].
  2. Aggiungere una nuova chiave per l'applicazione della risorsa.Add a new key for the resource app.

  3. Aggiornare il file manifesto dell'applicazione in modo che la proprietà groupMembershipClaims ha il valore "groupMembershipClaims": "All".Update the app manifest file so that the groupMembershipClaims property has the value "groupMembershipClaims": "All".

  4. Nell'app di Azure AD che punta all'applicazione web di Windows Media player, nella sezione autorizzazioni per altre applicazioni, aggiungere l'app di risorsa che è stato aggiunto nel passaggio 1.In the Azure AD app that points to the player web app, in the section Permissions to other applications, add the resource app that was added in step 1. In autorizzazione delegataselezionare accesso [resource_name].Under Delegated permission, select Access [resource_name]. Questa opzione consente l'autorizzazione di app web per creare i token di accesso, accedono all'app di risorse.This option gives the web app permission to create access tokens that access the resource app. Eseguire questa operazione per le versioni locali e distribuite dell'applicazione web se si sviluppa in Visual Studio e l'app web di Azure.Do this for both the local and deployed version of the web app if you develop with Visual Studio and the Azure web app.

Il token JWT rilasciati da Azure AD è il token di accesso utilizzato per accedere alla risorsa di puntatore.The JWT issued by Azure AD is the access token used to access the pointer resource.

Come funziona lo streaming live?What about live streaming?

La discussione precedente ha come obiettivo asset su richiesta.The previous discussion focused on on-demand assets. Come funziona lo streaming live?What about live streaming?

È possibile utilizzare esattamente la stessa progettazione e implementazione per la protezione in tempo reale dello streaming in servizi multimediali considerarli gli asset associati a un programma come asset VOD.You can use exactly the same design and implementation to protect live streaming in Media Services by treating the asset associated with a program as a VOD asset.

In particolare, per eseguire live streaming in servizi multimediali, è necessario creare un canale e quindi creare un programma con il canale.Specifically, to do live streaming in Media Services, you need to create a channel and then create a program under the channel. Per creare il programma, è necessario creare un asset che contiene l'archivio in tempo reale per il programma.To create the program, you need to create an asset that contains the live archive for the program. Per fornire la protezione del contenuto in tempo reale più DRM CENC, applicare il programma di installazione o l'elaborazione dei stesso all'asset come se fosse un asset VOD prima di avviare il programma.To provide CENC with multi-DRM protection of the live content, apply the same setup/processing to the asset as if it were a VOD asset before you start the program.

Il server licenze all'esterno di servizi multimediali?What about license servers outside Media Services?

Spesso, i clienti investito in una farm di server licenze nel proprio data center o uno ospitati dai provider di servizi DRM.Often, customers invested in a license server farm either in their own data center or one hosted by DRM service providers. Con Media Services la protezione del contenuto, è possibile eseguire in modalità ibrida.With Media Services Content Protection, you can operate in hybrid mode. Contenuto può essere ospitato e protetti in modo dinamico in servizi multimediali, mentre le licenze DRM vengono recapitate dal server all'esterno di servizi multimediali.Contents can be hosted and dynamically protected in Media Services, while DRM licenses are delivered by servers outside Media Services. In questo caso, prendere in considerazione le seguenti modifiche:In this case, consider the following changes:

  • Servizio token di sicurezza deve rilasciare token accettabili che possono essere verificati con la farm di server licenze.STS needs to issue tokens that are acceptable and can be verified by the license server farm. Ad esempio, il server licenze Widevine fornito da Axinom richiedono un JWT specifico che contiene un messaggio di diritti.For example, the Widevine license servers provided by Axinom require a specific JWT that contains an entitlement message. Pertanto, è necessario disporre di un servizio token di sicurezza per l'emissione di un JWT di questo tipo.Therefore, you need to have an STS to issue such a JWT. Per informazioni su questo tipo di implementazione, visitare il Centro documentazione di Azure e vedere Axinom utilizzare recapitare licenze Widevine di servizi multimediali di Azure.For information on this type of implementation, go to the Azure Documentation Center and see Use Axinom to deliver Widevine licenses to Azure Media Services.
  • Non è necessario configurare il servizio di recapito di licenze (ContentKeyAuthorizationPolicy) in servizi multimediali.You no longer need to configure license delivery service (ContentKeyAuthorizationPolicy) in Media Services. È necessario fornire la licenza gli URL di acquisizione (per PlayReady, Widevine e FairPlay) quando si configura AssetDeliveryPolicy impostare CENC con multi-DRM.You need to provide the license acquisition URLs (for PlayReady, Widevine, and FairPlay) when you configure AssetDeliveryPolicy to set up CENC with multi-DRM.

Come procedere per usare un servizio token di sicurezza personalizzato?What if I want to use a custom STS?

Un cliente potrebbe scegliere di utilizzare un servizio token di sicurezza personalizzato per fornire Jwt.A customer might choose to use a custom STS to provide JWTs. I motivi includono:Reasons include:

  • Provider di identità usati dal cliente non supporta il servizio token di sicurezza.The IDP used by the customer doesn't support STS. In questo caso, un servizio token di sicurezza personalizzato potrebbe essere un'opzione.In this case, a custom STS might be an option.
  • Il cliente potrebbe essere necessario controllo più flessibile o una stretta integrazione servizio token di sicurezza con server di sottoscrizione del cliente, il sistema di fatturazione.The customer might need more flexible or tighter control to integrate STS with the customer's subscriber billing system. Ad esempio, un operatore MVPD potrebbe offrire più pacchetti sottoscrittore OTT, ad esempio premium, basic e sportive.For example, an MVPD operator might offer multiple OTT subscriber packages, such as premium, basic, and sports. Potrebbe essere necessario l'operatore di associare le attestazioni in un token con il pacchetto di un sottoscrittore in modo che solo il contenuto in un pacchetto specifico viene resi disponibile.The operator might want to match the claims in a token with a subscriber's package so that only the contents in a specific package are made available. In questo caso, un servizio token di sicurezza personalizzato fornisce la flessibilità e il controllo necessari.In this case, a custom STS provides the needed flexibility and control.

Quando si utilizza un servizio token di sicurezza personalizzato, è necessario apportare due modifiche:When you use a custom STS, two changes must be made:

  • Quando si configura il servizio di recapito licenze per un asset, è necessario specificare la chiave di sicurezza utilizzata per la verifica dal servizio token di sicurezza personalizzata anziché la chiave corrente da Azure AD.When you configure license delivery service for an asset, you need to specify the security key used for verification by the custom STS instead of the current key from Azure AD. (Ulteriori dettagli sul).(More details follow.)
  • Quando viene generato un token JTW, anziché la chiave privata del X509 corrente viene specificata una chiave di sicurezza certificato in Azure AD.When a JTW token is generated, a security key is specified instead of the private key of the current X509 certificate in Azure AD.

Esistono due tipi di chiavi di sicurezza:There are two types of security keys:

  • Chiave simmetrica: la stessa chiave viene usata per generare e verificare un JWT.Symmetric key: The same key is used to generate and to verify a JWT.
  • Chiave asimmetrica: una coppia di chiavi pubblica / privata in un X509 certificato viene usato con una chiave privata per crittografare o generare un token JWT e con la chiave pubblica per verificare il token.Asymmetric key: A public-private key pair in an X509 certificate is used with a private key to encrypt/generate a JWT and with the public key to verify the token.

Nota

Se si utilizza .NET Framework / c# come piattaforma di sviluppo, X509 certificato utilizzato per una chiave di sicurezza asimmetrico deve avere una lunghezza della chiave di almeno 2048.If you use .NET Framework/C# as your development platform, the X509 certificate used for an asymmetric security key must have a key length of at least 2048. È un requisito della classe System.IdentityModel.Tokens.X509AsymmetricSecurityKey in .NET Framework.This is a requirement of the class System.IdentityModel.Tokens.X509AsymmetricSecurityKey in .NET Framework. In caso contrario, viene generata l'eccezione seguente:Otherwise, the following exception is thrown:

IDX10630: 'System.IdentityModel.Tokens.X509AsymmetricSecurityKey' per la firma non può essere inferiore a '2048' bit.IDX10630: The 'System.IdentityModel.Tokens.X509AsymmetricSecurityKey' for signing cannot be smaller than '2048' bits.

Sistema completato e testThe completed system and test

In questa sezione illustra gli scenari seguenti nel sistema end-to-end completato in modo da avere un'immagine di base del comportamento prima di ottenere un account di accesso:This section walks you through the following scenarios in the completed end-to-end system so that you can have a basic picture of the behavior before you get a sign-in account:

  • Se è necessario uno scenario non integrata:If you need a non-integrated scenario:

    • Per risorse video ospitati in servizi multimediali che sono uno non protetto o protetto da DRM ma senza l'autenticazione con token (rilasciare una licenza a chi ne ha richiesto), è possibile eseguirne il test senza eseguire l'accesso.For video assets hosted in Media Services that are either unprotected or DRM protected but without token authentication (issuing a license to whoever requested it), you can test it without signing in. Se il flusso video è su HTTP, passare a HTTP.Switch to HTTP if your video streaming is over HTTP.
  • Se è necessario uno scenario integrato end-to-end:If you need an end-to-end integrated scenario:

    • Per le risorse video dinamica DRM la protezione dati in servizi multimediali con l'autenticazione del token e JWT generato da Azure AD, è necessario eseguire l'accesso.For video assets under dynamic DRM protection in Media Services, with the token authentication and JWT generated by Azure AD, you need to sign in.

Per l'applicazione web di Windows Media player e il relativo segno-in, vedere il sito Web.For the player web application and its sign-in, see this website.

Accesso utenteUser sign-in

Per testare il sistema DRM integrato end-to-end, è necessario disporre di un account creati o aggiunti.To test the end-to-end integrated DRM system, you need to have an account created or added.

Quale account?What account?

Benché Azure originariamente consentisse l'accesso solo agli utenti di account Microsoft, è ora consentito l'accesso da parte degli utenti da entrambi i sistemi.Although Azure originally allowed access only by Microsoft account users, access is now allowed by users from both systems. Tutte le proprietà di Azure ora attendibili di Azure AD per l'autenticazione e Azure AD autentica gli utenti dell'organizzazione.All Azure properties now trust Azure AD for authentication, and Azure AD authenticates organizational users. Creazione di una relazione di federazione in cui Azure AD considera attendibile il sistema di identità Microsoft account utente per l'autenticazione degli utenti.A federation relationship was created where Azure AD trusts the Microsoft account consumer identity system to authenticate consumer users. Di conseguenza, Azure AD possono autenticarsi guest Microsoft Azure AD anche come nativi account.As a result, Azure AD can authenticate guest Microsoft accounts as well as native Azure AD accounts.

Poiché Azure AD considera attendibile il dominio dell'account Microsoft, è possibile aggiungere qualsiasi account da uno qualsiasi dei seguenti domini con Azure AD personalizzati del tenant e usare l'account per accedere:Because Azure AD trusts the Microsoft account domain, you can add any accounts from any of the following domains to the custom Azure AD tenant and use the account to sign in:

Nome di dominioDomain name DominioDomain
Dominio del tenant di Azure AD personalizzatoCustom Azure AD tenant domain nome.onmicrosoft.comsomename.onmicrosoft.com
Dominio aziendaleCorporate domain microsoft.commicrosoft.com
Dominio dell'account MicrosoftMicrosoft account domain outlook.com, live.com, hotmail.comoutlook.com, live.com, hotmail.com

È possibile contattare uno qualsiasi degli autori di un account creati o aggiunti automaticamente.You can contact any of the authors to have an account created or added for you.

Le schermate seguenti mostrano diverse delle pagine di accesso utilizzate dall'account di dominio diversi:The following screenshots show different sign-in pages used by different domain accounts:

Account di dominio del tenant AD Azure personalizzato: la pagina di accesso personalizzata di Azure AD personalizzato dominio del tenant.Custom Azure AD tenant domain account: The customized sign-in page of the custom Azure AD tenant domain.

Account dominio del tenant di Azure AD personalizzato

Account di dominio di Microsoft con smart card: la pagina di accesso personalizzata da aziendale di Microsoft IT con l'autenticazione a due fattori.Microsoft domain account with smart card: The sign-in page customized by Microsoft corporate IT with two-factor authentication.

Account dominio del tenant di Azure AD personalizzato

Account Microsoft: pagina di accesso dell'account Microsoft per i consumer.Microsoft account: The sign-in page of the Microsoft account for consumers.

Account dominio del tenant di Azure AD personalizzato

Utilizzare le estensioni multimediali crittografati per PlayReadyUse Encrypted Media Extensions for PlayReady

In un browser moderno con le estensioni di supporto crittografato (EME) per il supporto di PlayReady, ad esempio Internet Explorer 11 in Windows 8.1 o versioni successive e il browser Microsoft Edge in Windows 10, PlayReady è il DRM per EME sottostante.On a modern browser with Encrypted Media Extensions (EME) for PlayReady support, such as Internet Explorer 11 on Windows 8.1 or later and Microsoft Edge browser on Windows 10, PlayReady is the underlying DRM for EME.

Utilizzare EME per PlayReady

L'area di Windows Media player scuro è perché protezione PlayReady impedisce l'esecuzione di una cattura di schermata di video protetto.The dark player area is because PlayReady protection prevents you from making a screen capture of protected video.

La schermata seguente mostra il plug-in Windows Media player e Microsoft Security Essentials (MSE) / EME supporta:The following screenshot shows the player plug-ins and Microsoft Security Essentials (MSE)/EME support:

Windows Media Player plug-in per PlayReady

Consente di EME in Microsoft Edge e Internet Explorer 11 in Windows 10 PlayReady SL3000 da richiamare su dispositivi Windows 10 che la supportano.EME in Microsoft Edge and Internet Explorer 11 on Windows 10 allows PlayReady SL3000 to be invoked on Windows 10 devices that support it. PlayReady SL3000 Sblocca il flusso del contenuto premium migliorate (4K, HDR) e dei nuovi modelli di distribuzione (per il contenuto avanzato) del contenuto.PlayReady SL3000 unlocks the flow of enhanced premium content (4K, HDR) and new content delivery models (for enhanced content).

Per concentrare l'attenzione sui dispositivi Windows, PlayReady è l'unico DRM nell'hardware disponibile nei dispositivi Windows (PlayReady SL3000).To focus on the Windows devices, PlayReady is the only DRM in the hardware available on Windows devices (PlayReady SL3000). Un servizio di streaming è possibile usare PlayReady tramite EME o un'applicazione UWP e offrono una migliore qualità video tramite PlayReady SL3000 rispetto a un altro DRM.A streaming service can use PlayReady through EME or through a Universal Windows Platform application and offer a higher video quality by using PlayReady SL3000 than another DRM. In genere, il contenuto fino a 2 KB attraversa Chrome o Firefox e contenuto backup ai flussi di 4 K tramite Microsoft Edge o Internet Explorer 11 o un'applicazione UWP sullo stesso dispositivo.Typically, content up to 2K flows through Chrome or Firefox, and content up to 4K flows through Microsoft Edge/Internet Explorer 11 or a Universal Windows Platform application on the same device. La quantità dipende dall'implementazione e le impostazioni del servizio.The amount depends on service settings and implementation.

Utilizzare EME per WidevineUse EME for Widevine

In un browser moderno con il supporto EME/Widevine, ad esempio Chrome 41+ in Windows 10, Windows 8.1, Mac OSX Yosemite e Chrome in Android 4.4.4, Google Widevine è il sistema DRM dietro EME.On a modern browser with EME/Widevine support, such as Chrome 41+ on Windows 10, Windows 8.1, Mac OSX Yosemite, and Chrome on Android 4.4.4, Google Widevine is the DRM behind EME.

Utilizzare EME per Widevine

Widevine non impedisce di apportare una cattura di schermata di video protetto.Widevine doesn't prevent you from making a screen capture of protected video.

Windows Media Player plug-in per Widevine

Utenti unentitledUnentitled users

Se un utente non è un membro del gruppo "Utenti intitolata", l'utente non soddisfa il controllo sui diritti.If a user isn't a member of the "Entitled Users" group, the user doesn't pass the entitlement check. Il servizio di licenza di multi-DRM quindi Rifiuta rilasciare la licenza richiesta, come illustrato.The multi-DRM license service then refuses to issue the requested license as shown. Descrizione dettagliata è "acquisire licenze non è riuscita," che è quello previsto.The detailed description is "License acquire failed," which is as designed.

Utenti unentitled

Eseguire un servizio token di sicurezza personalizzatoRun a custom security token service

Se si esegue un servizio token di sicurezza personalizzato, il token JWT viene generato dal servizio token di sicurezza personalizzato utilizzando un simmetrica o asimmetrica.If you run a custom STS, the JWT is issued by the custom STS by using either a symmetric or an asymmetric key.

Nella schermata seguente viene illustrato uno scenario che utilizza una chiave simmetrica (con Chrome):The following screenshot shows a scenario that uses a symmetric key (using Chrome):

Servizio token di sicurezza personalizzato con una chiave simmetrica

Nella schermata seguente viene illustrato uno scenario che utilizza una chiave asimmetrica tramite un X509 (tramite un browser moderno Microsoft) del certificato:The following screenshot shows a scenario that uses an asymmetric key via an X509 certificate (using a Microsoft modern browser):

Servizio token di sicurezza personalizzato con una chiave asimmetrica

In entrambi i casi precedenti, l'autenticazione utente non cambia.In both of the previous cases, user authentication stays the same. Ha luogo tramite Azure AD.It takes place through Azure AD. L'unica differenza è che Jwt vengono rilasciati dal servizio token di sicurezza personalizzato invece di Azure AD.The only difference is that JWTs are issued by the custom STS instead of Azure AD. Quando si configura la protezione CENC dinamica, la restrizione di servizio di recapito licenza specifica il tipo di token JWT, di una chiave simmetrica o asimmetrica.When you configure dynamic CENC protection, the license delivery service restriction specifies the type of JWT, either a symmetric or an asymmetric key.

SummarySummary

Questo documento discusso CENC con controllo DRM e accesso più nativo tramite l'autenticazione del token, la progettazione e la relativa implementazione, tramite Azure, servizi multimediali e Media Player.This document discussed CENC with multi-native DRM and access control via token authentication, its design, and its implementation by using Azure, Media Services, and Media Player.

  • Un progetto di riferimento è stato specificato che contiene tutti i componenti necessari in un sottosistema DRM/CENC.A reference design was presented that contains all the necessary components in a DRM/CENC subsystem.
  • Un'implementazione di riferimento è stata presentata in Azure, servizi multimediali e Media Player.A reference implementation was presented on Azure, Media Services, and Media Player.
  • Sono state illustrate anche alcuni argomenti direttamente coinvolti nella progettazione e nell'implementazione.Some topics directly involved in the design and implementation were also discussed.

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: