Protéger votre contenu à l’aide du chiffrement dynamique de Media ServicesProtect your content with Media Services dynamic encryption

Utilisez Azure Media Services pour sécuriser votre contenu multimédia du moment où il quitte votre ordinateur jusqu’à sa remise, en passant par le stockage et le traitement.Use Azure Media Services to help secure your media from the time it leaves your computer all the way through storage, processing, and delivery. Media Services vous permet de transmettre votre contenu dynamique ou à la demande chiffré dynamiquement avec la norme Advanced Encryption Standard (AES-128) ou un des principaux systèmes de gestion des droits numériques (DRM) : Microsoft PlayReady, Google Widevine et Apple FairPlay.With Media Services, you can deliver your live and on-demand content encrypted dynamically with Advanced Encryption Standard (AES-128) or any of the three major digital rights management (DRM) systems: Microsoft PlayReady, Google Widevine, and Apple FairPlay. Media Services fournit également un service de distribution de clés AES et licences (PlayReady, Widevine et FairPlay) DRM aux clients autorisés.Media Services also provides a service for delivering AES keys and DRM (PlayReady, Widevine, and FairPlay) licenses to authorized clients.

Dans Media Services v3, une clé de contenu est associée à un localisateur de streaming (consultez cet exemple).In Media Services v3, a content key is associated with Streaming Locator (see this example). Si vous utilisez le service de remise de clé Azure Media Services, vous pouvez demander à ce service de générer la clé de contenu pour vous.If using the Media Services key delivery service, you can let Azure Media Services generate the content key for you. Vous devez générer la clé de contenu vous-même si vous utilisez votre propre service de remise de clé, ou si vous avez besoin de gérer un scénario de haute disponibilité au cours duquel vous avez besoin d’avoir la même clé de contenu dans deux centres de données.The content key should be generated yourself if you're using you own key delivery service, or if you need to handle a high availability scenario where you need to have the same content key in two data centers.

Lorsqu’un flux est demandé par un lecteur, Media Services utilise la clé spécifiée pour chiffrer dynamiquement votre contenu à l’aide du chiffrement de clé en clair AES ou DRM.When a stream is requested by a player, Media Services uses the specified key to dynamically encrypt your content by using AES clear key or DRM encryption. Pour déchiffrer le flux, le lecteur demande la clé au service de remise des clés Media Services, ou au service de remise des clés que vous avez spécifié.To decrypt the stream, the player requests the key from Media Services key delivery service or the key delivery service you specified. Pour déterminer si l’utilisateur est autorisé ou non à obtenir la clé, le service évalue la stratégie de clé de contenu que vous avez spécifiée pour la clé.To decide if the user is authorized to get the key, the service evaluates the content key policy that you specified for the key.

Vous pouvez utiliser l’API REST ou le la bibliothèque de client Media Services pour configurer des stratégies d’authentification et d’autorisation pour vos licences et vos clés.You can use the REST API, or a Media Services client library to configure authorization and authentication policies for your licenses and keys.

L’image suivante illustre le flux de travail de protection du contenu de Media Services :The following image illustrates the workflow for Media Services content protection:

Flux de travail pour la protection du contenu de Media Services

* Le chiffrement dynamique prend en charge les standards AES-128 « clé en clair », CBCS et CENC. Pour plus d’informations, voir la matrice de prise en charge.* Dynamic encryption supports AES-128 clear key, CBCS, and CENC. For details, see the support matrix.

Cet article explique les concepts et la terminologie pertinents pour comprendre la protection du contenu avec Media Services.This article explains concepts and terminology that help you understand content protection with Media Services.

Principaux composants du système de protection du contenuMain components of a content protection system

Pour implémenter correctement votre système de protection de contenu, vous devez parfaitement comprendre l’étendue de l’effort.To successfully complete your content protection system, you need to fully understand the scope of the effort. Les sections suivantes fournissent un aperçu des trois éléments que vous devez implémenter.The following sections give an overview of three parts that you need to implement.

Notes

Nous vous recommandons vivement de vous concentrer et de tester entièrement chaque élément des sections suivantes avant de passer à l’élément suivant.We highly recommended that you focus and fully test each part in the following sections before you move on to the next part. Pour tester votre système de protection du contenu, utilisez les outils spécifiés dans les sections.To test your content protection system, use the tools specified in the sections.

Code Media ServicesMedia Services code

L’exemple DRM montre comment implémenter un système multi-DRM avec Media Services v3 en utilisant .NET.The DRM sample shows you how to implement a multi-DRM system with Media Services v3 by using .NET. Il montre également comment utiliser le service de remise de clé ou de licences de Media Services.It also shows how to use the Media Services license/key delivery service.

Vous pouvez chiffrer chaque ressource avec plusieurs types de chiffrement (AES-128, PlayReady, Widevine, FairPlay).You can encrypt each asset with multiple encryption types (AES-128, PlayReady, Widevine, FairPlay). Pour identifier la meilleure combinaison, voir Types de protocoles de diffusion en continu et de chiffrements.To see what makes sense to combine, see Streaming protocols and encryption types.

Cet exemple indique comment effectuer les opérations suivantes :The example shows how to:

  1. Créer et configurer une stratégie de clé de contenu.Create and configure a content key policy.

    Vous créez une stratégie de clé de contenu pour configurer le mode de remise de clé de contenu (qui fournit un accès sécurisé à vos ressources) aux clients finaux :You create a content key policy to configure how the content key (which provides secure access to your assets) is delivered to end clients:

    • Définissez une autorisation de livraison de licence.Define license delivery authorization. Spécifiez la logique du contrôle d’autorisation en fonction des revendications figurant dans le JSON Web Token (JWT).Specify the logic of the authorization check based on claims in JSON Web Token (JWT).

    • Configurez les licences associées à PlayReady, Widevine et/ou FairPlay.Configure PlayReady, Widevine, and/or FairPlay licenses. Les modèles vous permettent de configurer les droits et autorisations pour chacun des DRM.The templates let you configure rights and permissions for each of the DRMs.

      ContentKeyPolicyPlayReadyConfiguration playReadyConfig = ConfigurePlayReadyLicenseTemplate();
      ContentKeyPolicyWidevineConfiguration widevineConfig = ConfigureWidevineLicenseTempate();
      ContentKeyPolicyFairPlayConfiguration fairPlayConfig = ConfigureFairPlayPolicyOptions();
      
  2. Créez un localisateur de streaming configuré pour diffuser en continu une ressource chiffrée.Create a streaming locator that's configured to stream the encrypted asset.

    Le localisateur de streaming doit être associé à une stratégie de diffusion en continu.The streaming locator has to be associated with a streaming policy. Dans cet exemple, nous définissons StreamingLocator.StreamingPolicyName sur la stratégie « Predefined_MultiDrmCencStreaming ».In the example, we set StreamingLocator.StreamingPolicyName to the "Predefined_MultiDrmCencStreaming" policy.

    Les chiffrements PlayReady et Widevine sont appliqués, et la clé est remise au client de lecture en fonction des licences DRM configurées.The PlayReady and Widevine encryptions are applied, and the key is delivered to the playback client based on the configured DRM licenses. Si vous voulez aussi chiffrer votre flux avec CBCS (FairPlay), utilisez la stratégie « Predefined_MultiDrmStreaming ».If you also want to encrypt your stream with CBCS (FairPlay), use the "Predefined_MultiDrmStreaming" policy.

    Le localisateur de streaming est également associé à la stratégie de clé de contenu que vous avez définie.The streaming locator is also associated with the content key policy that you defined.

  3. Créer un jeton de test.Create a test token.

    La méthode GetTokenAsync indique comment créer un jeton de test.The GetTokenAsync method shows how to create a test token.

  4. Générer l’URL de diffusion en continu.Build the streaming URL.

    La méthode GetDASHStreamingUrlAsync indique comment générer l’URL de diffusion en continu.The GetDASHStreamingUrlAsync method shows how to build the streaming URL. En l’occurrence, l’URL diffuse en continu le contenu DASH.In this case, the URL streams the DASH content.

Lecteur avec client AES ou DRMPlayer with an AES or DRM client

Une application de lecteur vidéo basée sur un kit de développement logiciel du lecteur (natif ou dans le navigateur) doit remplir les conditions suivantes :A video player app based on a player SDK (either native or browser-based) needs to meet the following requirements:

  • Le Kit de développement logiciel (SDK) du lecteur prend en charge les clients DRM nécessaires.The player SDK supports the needed DRM clients.
  • Le Kit de développement logiciel du lecteur prend en charge les protocoles de diffusion en continu requis : Smooth, DASH et/ou HTTP Live Streaming (HLS).The player SDK supports the required streaming protocols: Smooth, DASH, and/or HTTP Live Streaming (HLS).
  • Le Kit de développement logiciel (SDK) du lecteur peut gérer la transmission d’un jeton JWT dans une demande d’acquisition de licence.The player SDK can handle passing a JWT token in a license acquisition request.

Vous pouvez créer un lecteur à l’aide de l’API Azure Media Player.You can create a player by using the Azure Media Player API. Utilisez l’API ProtectionInfo d’Azure Media Player pour spécifier la technologie DRM à utiliser sur d’autres plateformes DRM.Use the Azure Media Player ProtectionInfo API to specify which DRM technology to use on different DRM platforms.

Pour tester du contenu chiffré par AES ou CENC (Widevine et/ou PlayReady), vous pouvez utiliser le lecteur multimédia Azure.For testing AES or CENC (Widevine and/or PlayReady) encrypted content, you can use Azure Media Player. Veillez à sélectionner Options avancées et vérifiez vos options de chiffrement.Make sure that you select Advanced options and check your encryption options.

Si vous souhaitez tester le contenu chiffré de FairPlay, utilisez ce lecteur test.If you want to test FairPlay encrypted content, use this test player. Le lecteur prend en charge les DRM Widevine, PlayReady et FairPlay, ainsi que le chiffrement « clé en clair » AES-128.The player supports Widevine, PlayReady, and FairPlay DRMs, along with AES-128 clear key encryption.

Choisissez le navigateur approprié pour tester les différents systèmes DRM :Choose the right browser to test different DRMs:

  • Chrome, Opera ou Firefox pour Widevine.Chrome, Opera, or Firefox for Widevine.
  • Microsoft Edge ou Internet Explorer 11 pour PlayReady.Microsoft Edge or Internet Explorer 11 for PlayReady.
  • Safari sur macOS pour FairPlay.Safari on macOS for FairPlay.

Service d’émission de jeton de sécuritéSecurity token service

Un service d’émission de jeton de sécurité (STS) émet un JWT en tant que jeton d’accès pour l’accès aux ressources principales.A security token service (STS) issues JWT as the access token for back-end resource access. Vous pouvez utiliser le service de remise de clé ou de licence Azure Media Services en tant que ressource principale.You can use the Azure Media Services license/key delivery service as the back-end resource. Un service STS doit définir les éléments suivants :An STS has to define the following things:

  • L’émetteur et l’audience (ou l’étendue).Issuer and audience (or scope).
  • Les revendications, qui dépendent des exigences de l’activité concernant la protection du contenu.Claims, which are dependent on business requirements in content protection.
  • La vérification symétrique ou asymétrique pour vérifier la signature.Symmetric or asymmetric verification for signature verification.
  • La prise en charge de substitution de clé (si nécessaire).Key rollover support (if necessary).

Vous pouvez vous servir de cet outil STS pour tester le service d’émission de jeton de sécurité.You can use this STS tool to test the STS. Il prend en charge les trois types de clés de vérification : symétrique, asymétrique ou Azure Active Directory (Azure AD) avec substitution de clé.It supports all three types of verification keys: symmetric, asymmetric, or Azure Active Directory (Azure AD) with key rollover.

Types de protocoles de diffusion en continu et de chiffrementStreaming protocols and encryption types

Vous pouvez utiliser Media Services pour transmettre du contenu chiffré de manière dynamique avec le chiffrement à clé en clair AES ou DRM en utilisant PlayReady, Widevine ou Apple FairPlay.You can use Media Services to deliver your content encrypted dynamically with AES clear key or DRM encryption by using PlayReady, Widevine, or FairPlay. Actuellement, vous pouvez chiffrer les formats HLS, MPEG-DASH et Smooth Streaming.Currently, you can encrypt the HLS, MPEG DASH, and Smooth Streaming formats. Chaque protocole prend en charge les méthodes de chiffrement suivantes.Each protocol supports the following encryption methods.

HLSHLS

Le protocole HLS prend en charge les formats de conteneur et schémas de chiffrement ci-après :The HLS protocol supports the following container formats and encryption schemes:

Format de conteneurContainer format Schéma de chiffrementEncryption scheme Exemple d’URLURL example
TousAll AESAES https://amsv3account-usw22.streaming.media.azure.net/00000000-0000-0000-0000-000000000000/ignite.ism/manifest(format=m3u8-aapl,encryption=cbc)
MPG2-TSMPG2-TS CBCS (FairPlay)CBCS (FairPlay) https://amsv3account-usw22.streaming.media.azure.net/00000000-0000-0000-0000-000000000000/ignite.ism/manifest(format=m3u8-aapl,encryption=cbcs-aapl)
CMAF(fmp4)CMAF(fmp4) CBCS (FairPlay)CBCS (FairPlay) https://amsv3account-usw22.streaming.media.azure.net/00000000-0000-0000-0000-000000000000/ignite.ism/manifest(format=m3u8-cmaf,encryption=cbcs-aapl)
MPG2-TSMPG2-TS CENC (PlayReady)CENC (PlayReady) https://amsv3account-usw22.streaming.media.azure.net/00000000-0000-0000-0000-000000000000/ignite.ism/manifest(format=m3u8-aapl,encryption=cenc)
CMAF(fmp4)CMAF(fmp4) CENC (PlayReady)CENC (PlayReady) https://amsv3account-usw22.streaming.media.azure.net/00000000-0000-0000-0000-000000000000/ignite.ism/manifest(format=m3u8-cmaf,encryption=cenc)

Le chiffrement HLS/CMAF + FairPlay (y compris HEVC/H.265) est pris en charge sur les appareils suivants :HLS/CMAF + FairPlay (including HEVC/H.265) is supported on the following devices:

  • iOS 11 ou version ultérieure.iOS 11 or later.
  • iPhone 8 ou version ultérieure.iPhone 8 or later.
  • MacOS High Sierra avec un UC Intel de 7e génération.MacOS High Sierra with Intel 7th Generation CPU.

MPEG-DASHMPEG-DASH

Le protocole MPEG-DASH prend en charge les formats de conteneur et schémas de chiffrement ci-après :The MPEG-DASH protocol supports the following container formats and encryption schemes:

Format de conteneurContainer format Schéma de chiffrementEncryption scheme Exemples d’URLURL Examples
TousAll AESAES https://amsv3account-usw22.streaming.media.azure.net/00000000-0000-0000-0000-000000000000/ignite.ism/manifest(format=mpd-time-csf,encryption=cbc)
CSF(fmp4)CSF(fmp4) CENC (Widevine + PlayReady)CENC (Widevine + PlayReady) https://amsv3account-usw22.streaming.media.azure.net/00000000-0000-0000-0000-000000000000/ignite.ism/manifest(format=mpd-time-csf,encryption=cenc)
CMAF(fmp4)CMAF(fmp4) CENC (Widevine + PlayReady)CENC (Widevine + PlayReady) https://amsv3account-usw22.streaming.media.azure.net/00000000-0000-0000-0000-000000000000/ignite.ism/manifest(format=mpd-time-cmaf,encryption=cenc)

Smooth StreamingSmooth Streaming

Le protocole Smooth Streaming prend en charge les formats de conteneur et schémas de chiffrement ci-après.The Smooth Streaming protocol supports the following container formats and encryption schemes.

ProtocolProtocol Format de conteneurContainer format Schéma de chiffrementEncryption scheme
fMP4fMP4 AESAES https://amsv3account-usw22.streaming.media.azure.net/00000000-0000-0000-0000-000000000000/ignite.ism/manifest(encryption=cbc)
fMP4fMP4 CENC (PlayReady)CENC (PlayReady) https://amsv3account-usw22.streaming.media.azure.net/00000000-0000-0000-0000-000000000000/ignite.ism/manifest(encryption=cenc)

NavigateursBrowsers

Les navigateurs courants prennent en charge les clients DRM suivants :Common browsers support the following DRM clients:

BrowserBrowser ChiffrementEncryption
ChromeChrome WidevineWidevine
Microsoft Edge, Internet Explorer 11Microsoft Edge, Internet Explorer 11 PlayReadyPlayReady
FirefoxFirefox WidevineWidevine
OperaOpera WidevineWidevine
SafariSafari FairPlayFairPlay

Contrôle de l’accès au contenuControlling content access

Vous pouvez contrôler qui a accès à votre contenu en configurant la stratégie d’autorisation de clé de contenu.You can control who has access to your content by configuring the content key policy. Media Services prend en charge plusieurs méthodes d’autorisation des utilisateurs effectuant des demandes de clé.Media Services supports multiple ways of authorizing users who make key requests. Le client (lecteur) doit répondre à la stratégie avant que la clé de contenu ne puisse lui être remise.The client (player) must meet the policy before the key can be delivered to the client. La stratégie de clé de contenu peut contenir une restriction ouverte ou de jeton.The content key policy can have open or token restriction.

Vous pouvez utiliser une stratégie de clé de contenu limitée à l’ouverture si vous souhaitez attribuer une licence à une personne dépourvue d’autorisation.An open-restricted content key policy may be used when you want to issue license to anyone without authorization. Par exemple, si vos recettes sont basées sur la publicité plutôt que sur des abonnements.For example, if your revenue is ad-based and not subscription-based.

Avec une stratégie de clé de contenu limitée au jeton, la clé de contenu n’est envoyée qu’à un client qui présente un JSON Web Token ou un simple jeton web (SWT) valides dans la demande de clé ou de licence.With a token-restricted content key policy, the content key is sent only to a client that presents a valid JWT token or a simple web token (SWT) in the license/key request. Ce jeton doit être émis par un service d’émission de jeton de sécurité (STS).This token must be issued by an STS.

Vous pouvez utiliser Azure AD en tant que STS ou déployer un STS personnalisé.You can use Azure AD as an STS or deploy a custom STS. Le STS doit être configuré pour créer un jeton signé avec la clé spécifiée et émettre les revendications spécifiées dans la configuration de restriction de jeton.The STS must be configured to create a token signed with the specified key and issue claims that you specified in the token restriction configuration. Le service de remise de clé ou de licence Media Services retourne la licence ou la clé demandées au client si les deux conditions suivantes sont réunies :The Media Services license/key delivery service returns the requested license or key to the client if both of these conditions exist:

  • Le jeton est valide.The token is valid.
  • Les revendications dans le jeton correspondent à celles configurées pour la licence ou la clé.The claims in the token match those configured for the license or key.

Quand vous configurez la stratégie de restriction par jeton, vous devez définir les paramètres de clé de vérification, émetteur et audience principaux.When you configure the token-restricted policy, you must specify the primary verification key, issuer, and audience parameters. La clé de vérification principale contient le jeton avec lequel la clé a été signée.The primary verification key contains the key that the token was signed with. L’émetteur est le service STS qui émet le jeton.The issuer is the STS that issues the token. L’audience, parfois appelé étendue, décrit l’objectif du jeton ou la ressource à laquelle le jeton autorise l’accès.The audience, sometimes called scope, describes the intent of the token or the resource that the token authorizes access to. Le service de remise de clé ou de licence Media Services vérifie que les valeurs dans le jeton correspondent aux valeurs du modèle.The Media Services license/key delivery service validates that these values in the token match the values in the template.

Prévention de réexécution de jetonToken replay prevention

La fonctionnalité de prévention de réexécution de jeton permet aux clients de Media Services de limiter le nombre de fois qu’un même jeton peut être utilisé pour demander une clé ou une licence.The Token Replay Prevention feature allows Media Services customers to set a limit on how many times the same token can be used to request a key or a license. Le client peut ajouter une revendication de type urn:microsoft:azure:mediaservices:maxuses dans le jeton, sont la valeur indique le nombre de fois que le jeton peut être utilisé pour acquérir une licence ou une clé.The customer can add a claim of type urn:microsoft:azure:mediaservices:maxuses in the token, where the value is the number of times the token can be used to acquire a license or key. Toutes les demandes suivantes de remise de clé effectuées à l’aide du même jeton renvoient une réponse Non autorisé.All subsequent requests with the same token to Key Delivery will return an unauthorized response. Découvrez comment ajouter la revendication dans l’exemple DRM.See how to add the claim in the DRM sample.

ConsidérationsConsiderations

  • Les clients doivent pouvoir contrôler la génération de jetons.Customers must have control over token generation. La revendication doit être placée dans le jeton lui-même.The claim needs to be placed in the token itself.
  • Lors de l’utilisation de cette fonctionnalité, les demandes comportant des jetons dont le délai d’expiration est supérieur à une heure après le moment de réception de la demande sont rejetées avec une réponse Non autorisé.When using this feature, requests with tokens whose expiry time is more than one hour away from the time the request is received are rejected with an unauthorized response.
  • Les jetons sont identifiés de façon unique par leur signature.Tokens are uniquely identified by their signature. Toute modification apportée à la charge utile (par exemple, une mise à jour de l’heure d’expiration ou de la revendication) a pour effet de modifier la signature du jeton et est considérée comme un nouveau jeton que la fonctionnalité de remise de clé n’a pas encore rencontré.Any change to the payload (for example, update to the expiry time or the claim) changes the signature of the token and it will count as a new token that Key Delivery hasn't come across before.
  • La lecture échoue si le jeton a été exécuté un nombre fois supérieur à la valeur maxuses définie par le client.Playback fails if the token has exceeded the maxuses value set by the customer.
  • Cette fonctionnalité peut être utilisée pour tout contenu protégé existant (seul le jeton émis doit être modifié).This feature can be used for all existing protected content (only the token issued needs to be changed).
  • Cette fonctionnalité opère avec JWT et SWT.This feature works with both JWT and SWT.

Utilisation d’un STS personnaliséUsing a custom STS

Un client peut choisir d’utiliser un STS personnalisé pour fournir des jetons.A customer might choose to use a custom STS to provide tokens. En voici plusieurs raisons :Reasons include:

  • Le fournisseur d’identité (IDP) utilisé par le client ne prend pas en charge STS.The identity provider (IDP) used by the customer doesn't support STS. Dans ce cas, un service STS personnalisé peut être une solution.In this case, a custom STS might be an option.

  • Le client peut avoir besoin de contrôler de manière plus souple ou plus stricte l’intégration de STS avec le système de facturation des abonnés du client.The customer might need more flexible or tighter control to integrate STS with the customer's subscriber billing system.

    Par exemple, un service OTT peut proposer plusieurs offres d’abonné, par exemple des offres premium, de base et sports.For example, an OTT service operator might offer multiple subscriber packages, such as premium, basic, and sports. L’opérateur peut chercher à associer les revendications d’un jeton avec l’offre d’un abonné afin que seul le contenu d’une offre spécifique soit mis à disposition.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. Dans ce cas, un STS personnalisé offre la souplesse et la maîtrise nécessaires.In this case, a custom STS provides the needed flexibility and control.

  • Pour inclure des revendications personnalisées dans le jeton afin de pouvoir opérer une sélection parmi différentes ContentKeyPolicyOptions avec différents paramètres de licence DRM (licence d’abonnement ou licence de location).To include custom claims in the token to select between different ContentKeyPolicyOptions with different DRM license parameters (a subscription license versus a rental license).

  • Pour inclure une revendication représentant l’identificateur de clé de contenu de la clé à laquelle le jeton accorde l’accès.To include a claim representing the content key identifier of the key that the token grants access to.

Lorsque vous utilisez un STS personnalisé, vous devez effectuer deux modifications :When you use a custom STS, two changes must be made:

  • Lorsque vous configurez le service de distribution de licences pour un élément multimédia, vous devez spécifier la clé de sécurité utilisée par le STS personnalisé, et non la clé actuelle d’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.
  • Une fois le jeton JTW généré, une clé de sécurité est spécifiée à la place de la clé privée du certificat X509 courant dans 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.

Il existe deux types de clés de sécurité :There are two types of security keys:

  • Clé symétrique : la même clé est utilisée pour générer et vérifier un jeton JWT.Symmetric key: The same key is used to generate and to verify a JWT.
  • Clé asymétrique : une paire de clés publique-privée dans un certificat X509 est utilisée avec une clé privée pour chiffrer/générer un jeton JWT et avec la clé publique pour vérifier le jeton.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.

Si vous utilisez .NET Framework/C# en tant que plateforme de développement, le certificat X509 utilisé pour la clé de sécurité asymétrique doit avoir une longueur d’au moins 2 048 bits.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. La longueur de clé constitue une exigence de la classe System.IdentityModel.Tokens.X509AsymmetricSecurityKey dans .NET Framework.This key length is a requirement of the class System.IdentityModel.Tokens.X509AsymmetricSecurityKey in .NET Framework. Dans le cas contraire, l’exception suivante est générée : IDX10630 : La longueur de la signature « System.IdentityModel.Tokens.X509AsymmetricSecurityKey » ne peut pas être inférieure à « 2048 » bits.Otherwise, the following exception is thrown: IDX10630: The 'System.IdentityModel.Tokens.X509AsymmetricSecurityKey' for signing can't be smaller than '2048' bits.

URL d’acquisition de licences et de clés personnaliséesCustom key and license acquisition URL

Utilisez les modèles suivants si vous souhaitez spécifier un service de remise de clé ou de licence autre que Media Services.Use the following templates if you want to specify a different license/key delivery service (not Media Services). Les deux champs modifiables présents dans les modèles sont là pour vous permettre de partager votre stratégie de diffusion en continu entre plusieurs ressources afin d’éviter de créer une stratégie par ressource.The two replaceable fields in the templates are there so that you can share your streaming policy across many assets instead of creating a streaming policy per asset.

  • EnvelopeEncryption.CustomKeyAcquisitionUrlTemplate: Modèle pour l’URL du service personnalisé qui remet les clés aux lecteurs de l’utilisateur final.EnvelopeEncryption.CustomKeyAcquisitionUrlTemplate: Template for the URL of the custom service that delivers keys to end-user players. Il n’est pas requis lorsque vous utilisez Azure Media Services pour émettre des clés.It isn't required when you're using Azure Media Services for issuing keys.

    Ce modèle prend en charge les jetons remplaçables que le service met à jour lors de l’exécution, en utilisant la valeur spécifique à la requête.The template supports replaceable tokens that the service will update at runtime with the value specific to the request. Les valeurs de jeton actuellement prises en charge sont les suivantes :The currently supported token values are:

    • {AlternativeMediaId} qui est remplacée par la valeur de StreamingLocatorId.AlternativeMediaId.{AlternativeMediaId}, which is replaced with the value of StreamingLocatorId.AlternativeMediaId.
    • {ContentKeyId} qui est remplacée par la valeur de l’identificateur de la clé demandée.{ContentKeyId}, which is replaced with the value of the identifier of the requested key.
  • StreamingPolicyPlayReadyConfiguration.CustomLicenseAcquisitionUrlTemplate: Modèle pour l’URL du service personnalisé qui remet les licences aux lecteurs de l’utilisateur final.StreamingPolicyPlayReadyConfiguration.CustomLicenseAcquisitionUrlTemplate: Template for the URL of the custom service that delivers licenses to end-user players. Il n’est pas requis lorsque vous utilisez Azure Media Services pour émettre des licences.It isn't required when you're using Azure Media Services for issuing licenses.

    Ce modèle prend en charge les jetons remplaçables que le service met à jour lors de l’exécution, en utilisant la valeur spécifique à la requête.The template supports replaceable tokens that the service will update at runtime with the value specific to the request. Les valeurs de jeton actuellement prises en charge sont les suivantes :The currently supported token values are:

    • {AlternativeMediaId} qui est remplacée par la valeur de StreamingLocatorId.AlternativeMediaId.{AlternativeMediaId}, which is replaced with the value of StreamingLocatorId.AlternativeMediaId.
    • {ContentKeyId} qui est remplacée par la valeur de l’identificateur de la clé demandée.{ContentKeyId}, which is replaced with the value of the identifier of the requested key.
  • StreamingPolicyWidevineConfiguration.CustomLicenseAcquisitionUrlTemplate: Identique au modèle précédent, uniquement pour Widevine.StreamingPolicyWidevineConfiguration.CustomLicenseAcquisitionUrlTemplate: Same as the previous template, only for Widevine.

  • StreamingPolicyFairPlayConfiguration.CustomLicenseAcquisitionUrlTemplate: Identique au modèle précédent, uniquement pour FairPlay.StreamingPolicyFairPlayConfiguration.CustomLicenseAcquisitionUrlTemplate: Same as the previous template, only for FairPlay.

Par exemple :For example:

streamingPolicy.EnvelopEncryption.customKeyAcquisitionUrlTemplate = "https://mykeyserver.hostname.com/envelopekey/{AlternativeMediaId}/{ContentKeyId}";

ContentKeyId a une valeur de la clé demandée.ContentKeyId has a value of the requested key. Vous pouvez utiliser AlternativeMediaId si vous souhaitez mapper la demande à une entité de votre côté.You can use AlternativeMediaId if you want to map the request to an entity on your side. Par exemple, AlternativeMediaId peut être utilisé pour vous aider à rechercher des autorisations.For example, AlternativeMediaId can be used to help you look up permissions.

Pour accéder à des exemples REST qui utilisent des URL d’acquisition de clé ou de licence personnalisées, voir Stratégies de diffusion en continu – Créer.For REST examples that use custom license/key acquisition URLs, see Streaming Policies - Create.

Notes

Widevine est un service fourni par Google Inc. soumis aux conditions de service et à la politique de confidentialité de Google, Inc.Widevine is a service provided by Google Inc. and subject to the terms of service and Privacy Policy of Google, Inc.

Résolution des problèmesTroubleshoot

Si vous obtenez l’erreur MPE_ENC_ENCRYPTION_NOT_SET_IN_DELIVERY_POLICY, veillez à spécifier la stratégie de diffusion en continu appropriée.If you get the MPE_ENC_ENCRYPTION_NOT_SET_IN_DELIVERY_POLICY error, make sure that you specify the appropriate streaming policy.

Si vous obtenez des erreurs qui se terminent par _NOT_SPECIFIED_IN_URL, vérifiez que vous avez spécifié le format de chiffrement dans l’URL.If you get errors that end with _NOT_SPECIFIED_IN_URL, make sure that you specify the encryption format in the URL. Par exemple …/manifest(format=m3u8-cmaf,encryption=cbcs-aapl).An example is …/manifest(format=m3u8-cmaf,encryption=cbcs-aapl). Voir Types de protocoles de diffusion en continu et de chiffrement.See Streaming protocols and encryption types.

Poser des questions, envoyer des commentaires, obtenir des mises à jourAsk questions, give feedback, get updates

Découvrez l’article Communauté Azure Media Services pour découvrir les différentes façons dont vous pouvez poser des questions, faire des commentaires et obtenir des mises à jour sur Media Services.Check out the Azure Media Services community article to see different ways you can ask questions, give feedback, and get updates about Media Services.

Étapes suivantesNext steps