Proteja o seu conteúdo com encriptação dinâmica dos Media ServicesProtect your content with Media Services dynamic encryption

logotipo de serviços de mídia v3media services logo v3


Utilize a Azure Media Services para ajudar a proteger os seus meios de comunicação a partir do momento em que deixa o computador durante todo o processo de armazenamento, processamento e entrega.Use Azure Media Services to help secure your media from the time it leaves your computer all the way through storage, processing, and delivery. Com os Media Services, pode fornecer o seu conteúdo ao vivo e a pedido encriptado dinamicamente com o Advanced Encryption Standard (AES-128) ou qualquer um dos três principais sistemas de gestão de direitos digitais (DRM): Microsoft PlayReady, Google Widevine e 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. Os Media Services também fornecem um serviço para a entrega de chaves AES e licenças DRM (PlayReady, Widevine e FairPlay) a clientes autorizados.Media Services also provides a service for delivering AES keys and DRM (PlayReady, Widevine, and FairPlay) licenses to authorized clients. Se o conteúdo for encriptado com uma chave clara AES e for enviado por HTTPS, não é claro até chegar ao cliente.If content is encrypted with an AES clear key and is sent over HTTPS, it is not in clear until it reaches the client.

Nota

A widevine não está disponível na região do GovCloud.Widevine is not available in the GovCloud region.

Nos Serviços de Comunicação Social v3, uma chave de conteúdo está associada ao Localizador de Streaming (ver exemplo).In Media Services v3, a content key is associated with Streaming Locator (see this example). Se utilizar o serviço de entrega de chaves media, pode deixar que a Azure Media Services gere a chave de conteúdo para si.If using the Media Services key delivery service, you can let Azure Media Services generate the content key for you. A chave de conteúdo deve ser gerada se estiver a utilizar o seu próprio serviço de entrega de chaves, ou se precisar de lidar com um cenário de alta disponibilidade onde precisa de ter a mesma chave de conteúdo em dois centros de dados.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.

Quando um stream é solicitado por um jogador, os Media Services utilizam a chave especificada para encriptar dinamicamente o seu conteúdo utilizando a chave clara AES ou encriptação 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. Para desencriptar o fluxo, o leitor solicita a chave do serviço de entrega de chaves media ou do serviço de entrega chave especificado.To decrypt the stream, the player requests the key from Media Services key delivery service or the key delivery service you specified. Para decidir se o utilizador está autorizado a obter a chave, o serviço avalia a política de chave de conteúdo que especificou para a chave.To decide if the user is authorized to get the key, the service evaluates the content key policy that you specified for the key.

Pode utilizar a API REST ou uma biblioteca de clientes dos Media Services para configurar as políticas de autorização e autenticação para as suas licenças e chaves.You can use the REST API, or a Media Services client library to configure authorization and authentication policies for your licenses and keys.

A imagem a seguir ilustra o fluxo de trabalho para a proteção de conteúdos dos Serviços de Comunicação Social:The following image illustrates the workflow for Media Services content protection:

Fluxo de trabalho para proteção de conteúdos dos Serviços de Mídia

* a encriptação Dynamic suporta a chave clara AES-128, CBCS e CENC. Para mais detalhes, consulte a matriz de suporte.* Dynamic encryption supports AES-128 clear key, CBCS, and CENC. For details, see the support matrix.

Este artigo explica conceitos e terminologia que o ajudam a entender a proteção de conteúdos com os Media Services.This article explains concepts and terminology that help you understand content protection with Media Services.

Principais componentes de um sistema de proteção de conteúdosMain components of a content protection system

Para completar com sucesso o seu sistema de proteção de conteúdos, é necessário compreender plenamente o alcance do esforço.To successfully complete your content protection system, you need to fully understand the scope of the effort. As secções seguintes dão uma visão geral de três partes que precisa de implementar.The following sections give an overview of three parts that you need to implement.

Nota

Recomendamos vivamente que se concentre e teste completamente cada peça nas seguintes secções antes de passar para a próxima parte.We highly recommended that you focus and fully test each part in the following sections before you move on to the next part. Para testar o seu sistema de proteção de conteúdos, utilize as ferramentas especificadas nas secções.To test your content protection system, use the tools specified in the sections.

Código dos Serviços de MídiaMedia Services code

A amostra drm mostra-lhe como implementar um sistema multi-DRM com Serviços de Mídia v3 através da utilização de .NET.The DRM sample shows you how to implement a multi-DRM system with Media Services v3 by using .NET. Também mostra como usar a licença/serviço de entrega de serviços de comunicação.It also shows how to use the Media Services license/key delivery service.

Pode encriptar cada elemento com vários tipos de encriptação (AES-128, PlayReady, Widevine, FairPlay).You can encrypt each asset with multiple encryption types (AES-128, PlayReady, Widevine, FairPlay). Para ver o que faz sentido combinar, consulte protocolos de streaming e tipos de encriptação.To see what makes sense to combine, see Streaming protocols and encryption types.

O exemplo mostra como:The example shows how to:

  1. Criar e configurar uma política chave de conteúdo.Create and configure a content key policy.

    Cria uma política de chave de conteúdo para configurar como a chave de conteúdo (que fornece acesso seguro aos seus ativos) é entregue aos clientes finais:You create a content key policy to configure how the content key (which provides secure access to your assets) is delivered to end clients:

    • Defina a autorização de entrega de licença.Define license delivery authorization. Especifique a lógica do controlo de autorização com base em reclamações em JSON Web Token (JWT).Specify the logic of the authorization check based on claims in JSON Web Token (JWT).

    • Configure as licenças PlayReady, Widevinee/ou FairPlay.Configure PlayReady, Widevine, and/or FairPlay licenses. Os modelos permitem configurar direitos e permissões para cada um dos DRMs.The templates let you configure rights and permissions for each of the DRMs.

      ContentKeyPolicyPlayReadyConfiguration playReadyConfig = ConfigurePlayReadyLicenseTemplate();
      ContentKeyPolicyWidevineConfiguration widevineConfig = ConfigureWidevineLicenseTempate();
      ContentKeyPolicyFairPlayConfiguration fairPlayConfig = ConfigureFairPlayPolicyOptions();
      
  2. Crie um localizador de streaming configurado para transmitir o ativo encriptado.Create a streaming locator that's configured to stream the encrypted asset.

    O localizador de streaming tem de ser associado a uma política de streaming.The streaming locator has to be associated with a streaming policy. No exemplo, definimos StreamingLocator.StreamingPolicyName a política "Predefined_MultiDrmCencStreaming".In the example, we set StreamingLocator.StreamingPolicyName to the "Predefined_MultiDrmCencStreaming" policy.

    As encriptações PlayReady e Widevine são aplicadas e a chave é entregue ao cliente de reprodução com base nas licenças DE DRM configuradas.The PlayReady and Widevine encryptions are applied, and the key is delivered to the playback client based on the configured DRM licenses. Se também pretender encriptar o seu fluxo com o CBCS (FairPlay), utilize a política "Predefined_MultiDrmStreaming".If you also want to encrypt your stream with CBCS (FairPlay), use the "Predefined_MultiDrmStreaming" policy.

    O localizador de streaming também está associado à política de chave de conteúdo que definiu.The streaming locator is also associated with the content key policy that you defined.

  3. Criar um símbolo de teste.Create a test token.

    O GetTokenAsync método mostra como criar um símbolo de teste.The GetTokenAsync method shows how to create a test token.

  4. Construa a URL de streaming.Build the streaming URL.

    O GetDASHStreamingUrlAsync método mostra como construir o URL de streaming.The GetDASHStreamingUrlAsync method shows how to build the streaming URL. Neste caso, o URL transmite o conteúdo do DASH.In this case, the URL streams the DASH content.

Jogador com um cliente AES ou DRMPlayer with an AES or DRM client

Uma aplicação de leitor de vídeo baseada num jogador SDK (nativo ou baseado no navegador) precisa de satisfazer os seguintes requisitos:A video player app based on a player SDK (either native or browser-based) needs to meet the following requirements:

  • O player SDK suporta os clientes DRM necessários.The player SDK supports the needed DRM clients.
  • O leitor SDK suporta os protocolos de streaming necessários: Smooth, DASH e/ou HTTP Live Streaming (HLS).The player SDK supports the required streaming protocols: Smooth, DASH, and/or HTTP Live Streaming (HLS).
  • O jogador SDK pode lidar com a passagem de um token JWT num pedido de aquisição de licença.The player SDK can handle passing a JWT token in a license acquisition request.

Pode criar um leitor utilizando a API do Azure Media Player.You can create a player by using the Azure Media Player API. Utilize o Azure Media Player ProtectionInfo API para especificar qual a tecnologia DRM a utilizar em diferentes plataformas DE DRM.Use the Azure Media Player ProtectionInfo API to specify which DRM technology to use on different DRM platforms.

Para testar conteúdo encriptado AES ou CENC (Widevine e/ou PlayReady), pode utilizar o Azure Media Player.For testing AES or CENC (Widevine and/or PlayReady) encrypted content, you can use Azure Media Player. Certifique-se de que seleciona opções Avançadas e verifique as suas opções de encriptação.Make sure that you select Advanced options and check your encryption options.

Se pretender testar o conteúdo encriptado FairPlay, utilize este leitor de testes.If you want to test FairPlay encrypted content, use this test player. O jogador suporta DrMs Widevine, PlayReady e FairPlay, juntamente com encriptação clara de chave AES-128.The player supports Widevine, PlayReady, and FairPlay DRMs, along with AES-128 clear key encryption.

Escolha o navegador certo para testar diferentes DRMs:Choose the right browser to test different DRMs:

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

Serviço de ficha de segurançaSecurity token service

Um serviço de ficha de segurança (STS) emite jWT como o símbolo de acesso para acesso de recursos back-end.A security token service (STS) issues JWT as the access token for back-end resource access. Pode utilizar a licença/serviço de entrega da Azure Media Services como recurso de back-end.You can use the Azure Media Services license/key delivery service as the back-end resource. Uma STS tem de definir as seguintes coisas:An STS has to define the following things:

  • Emitente e público (ou âmbito).Issuer and audience (or scope).
  • Sinistros, que dependem dos requisitos empresariais na proteção de conteúdos.Claims, which are dependent on business requirements in content protection.
  • Verificação simétrica ou assimétrica para verificação de assinaturas.Symmetric or asymmetric verification for signature verification.
  • Suporte de capotamento da chave (se necessário).Key rollover support (if necessary).

Pode utilizar esta ferramenta STS para testar o STS.You can use this STS tool to test the STS. Suporta todos os três tipos de chaves de verificação: simétrica, assimétrica ou Azure Ative Directory (Azure AD) com capotamento de chaves.It supports all three types of verification keys: symmetric, asymmetric, or Azure Active Directory (Azure AD) with key rollover.

Protocolos de transmissão em fluxo e tipos de encriptaçãoStreaming protocols and encryption types

Pode utilizar os Serviços de Comunicação social para fornecer o seu conteúdo encriptado dinamicamente com a chave AES clara ou encriptação DRM utilizando PlayReady, Widevine ou 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. Atualmente, pode encriptar os formatos HLS, MPEG DASH e Smooth Streaming.Currently, you can encrypt the HLS, MPEG DASH, and Smooth Streaming formats. Cada protocolo suporta os seguintes métodos de encriptação.Each protocol supports the following encryption methods.

HLSHLS

O protocolo HLS suporta os seguintes formatos de contentores e esquemas de encriptação:The HLS protocol supports the following container formats and encryption schemes:

Formato do recipienteContainer format Esquema de encriptaçãoEncryption scheme Exemplo de URLURL example
TodosAll 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)

O HLS/CMAF + FairPlay (incluindo HEVC/H.265) é suportado nos seguintes dispositivos:HLS/CMAF + FairPlay (including HEVC/H.265) is supported on the following devices:

  • iOS 11 ou posterior.iOS 11 or later.
  • iPhone 8 ou mais tarde.iPhone 8 or later.
  • macOS High Sierra com CPU de 7ª Geração Intel.macOS High Sierra with Intel 7th Generation CPU.

MPEG-DASHMPEG-DASH

O protocolo MPEG-DASH suporta os seguintes formatos de contentores e esquemas de encriptação:The MPEG-DASH protocol supports the following container formats and encryption schemes:

Formato do recipienteContainer format Esquema de encriptaçãoEncryption scheme Exemplos de URLURL Examples
TodosAll 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)

Transmissão em Fluxo UniformeSmooth Streaming

O protocolo Smooth Streaming suporta os seguintes formatos de contentores e esquemas de encriptação.The Smooth Streaming protocol supports the following container formats and encryption schemes.

ProtocoloProtocol Formato do recipienteContainer format Esquema de encriptaçãoEncryption 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)
fMP4fMP4 PIFF 1.1 (PlayReady)PIFF 1.1 (PlayReady) https://amsv3account-usw22.streaming.media.azure.net/00000000-0000-0000-0000-000000000000/ignite.ism/manifest(encryption=piff)

Nota

O suporte PIFF 1.1 é fornecido como uma solução compatível para trás para Smart TV (Samsung, LG) que implementou a versão inicial "Silverlight" da Common Encryption.PIFF 1.1 support is provided as a backwards compatible solution for Smart TV (Samsung, LG) that implemented the early "Silverlight" version of Common Encryption. Recomenda-se apenas utilizar o formato PIFF sempre que necessário para suporte de legacey Samsung ou LG Smart TVs enviados entre 2009-2015 que suportavam a versão PIFF 1.1 da encriptação PlayReady.It is recommended to only use the PIFF format where needed for support of legacey Samsung or LG Smart TVs shipped between 2009-2015 that supported the PIFF 1.1 version of PlayReady encryption.

NavegadoresBrowsers

Os navegadores comuns suportam os seguintes clientes DRM:Common browsers support the following DRM clients:

BrowserBrowser EncriptaçãoEncryption
ChromeChrome WidevineWidevine
Microsoft Edge, Internet Explorer 11Microsoft Edge, Internet Explorer 11 PlayReadyPlayReady
FirefoxFirefox WidevineWidevine
ÓperaOpera WidevineWidevine
SafariSafari FairPlayFairPlay

Controlar o acesso aos conteúdosControlling content access

Pode controlar quem tem acesso ao seu conteúdo configurando a política de chave de conteúdo.You can control who has access to your content by configuring the content key policy. Os Media Services suportam várias formas de autorização de utilizadores que efetuam pedidos de chave.Media Services supports multiple ways of authorizing users who make key requests. O cliente (jogador) deve cumprir a apólice antes de a chave poder ser entregue ao cliente.The client (player) must meet the policy before the key can be delivered to the client. A política de chave de conteúdo pode ter restrições abertas ou simbólicas.The content key policy can have open or token restriction.

Uma política de chave de conteúdo restrito aberto pode ser usada quando pretender emitir licença a qualquer pessoa sem autorização.An open-restricted content key policy may be used when you want to issue license to anyone without authorization. Por exemplo, se a sua receita for baseada em anúncios e não baseada em subscrições.For example, if your revenue is ad-based and not subscription-based.

Com uma política de chave de conteúdo restrito a ficha simbólica, a chave de conteúdo é enviada apenas para um cliente que apresenta um token JWT válido ou um simples token web (SWT) no pedido de licença/chave.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. Este símbolo deve ser emitido por uma STS.This token must be issued by an STS.

Pode utilizar o Azure AD como STS ou implementar uma STS personalizada.You can use Azure AD as an STS or deploy a custom STS. O STS deve ser configurado para criar um símbolo assinado com a chave especificada e emitir alegações que especificou na configuração da restrição simbólica.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. A licença/serviço de entrega de serviços de comunicação devolve a licença ou chave solicitada ao cliente se ambas estas condições existirem:The Media Services license/key delivery service returns the requested license or key to the client if both of these conditions exist:

  • O símbolo é válido.The token is valid.
  • As reclamações no símbolo correspondem às configuradas para a licença ou chave.The claims in the token match those configured for the license or key.

Ao configurar a política restrita de token, deve especificar a chave de verificação primária, o emitente e os parâmetros do público.When you configure the token-restricted policy, you must specify the primary verification key, issuer, and audience parameters. A chave de verificação primária contém a chave com a que o símbolo foi assinado.The primary verification key contains the key that the token was signed with. O emitente é o STS que emite o símbolo.The issuer is the STS that issues the token. O público, por vezes chamado de âmbito, descreve a intenção do símbolo ou do recurso a que o símbolo autoriza o acesso.The audience, sometimes called scope, describes the intent of the token or the resource that the token authorizes access to. A licença/serviço de entrega de serviços de comunicação valida que estes valores no token correspondem aos valores do modelo.The Media Services license/key delivery service validates that these values in the token match the values in the template.

Prevenção de repetição de tokenToken replay prevention

A funcionalidade De Prevenção de Repetição token permite que os clientes dos Media Services estabeleçam um limite para quantas vezes o mesmo token pode ser usado para solicitar uma chave ou uma licença.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. O cliente pode adicionar uma reclamação de tipo urn:microsoft:azure:mediaservices:maxuses no token, onde o valor é o número de vezes que o token pode ser usado para adquirir uma licença ou chave.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. Todos os pedidos subsequentes com o mesmo sinal para a Entrega de Chaves devolverão uma resposta não autorizada.All subsequent requests with the same token to Key Delivery will return an unauthorized response. Veja como adicionar a reclamação na amostra de DRM.See how to add the claim in the DRM sample.

ConsideraçõesConsiderations

  • Os clientes devem ter controlo sobre a geração simbólica.Customers must have control over token generation. A reivindicação tem de ser colocada no próprio símbolo.The claim needs to be placed in the token itself.
  • Ao utilizar esta funcionalidade, os pedidos com fichas cujo prazo de validade esteja a mais de uma hora do momento em que o pedido é recebido são rejeitados com uma resposta não autorizada.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.
  • Os tokens são identificados exclusivamente pela sua assinatura.Tokens are uniquely identified by their signature. Qualquer alteração na carga útil (por exemplo, atualização para o prazo de validade ou a reclamação) altera a assinatura do token e contará como um novo símbolo que a Entrega da Chave nunca encontrou antes.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.
  • A reprodução falha se o token exceder o maxuses valor definido pelo cliente.Playback fails if the token has exceeded the maxuses value set by the customer.
  • Esta funcionalidade pode ser utilizada para todos os conteúdos protegidos existentes (apenas o token emitido precisa de ser alterado).This feature can be used for all existing protected content (only the token issued needs to be changed).
  • Esta funcionalidade funciona tanto com o JWT como com o SWT.This feature works with both JWT and SWT.

Usando uma STS personalizadaUsing a custom STS

Um cliente pode optar por usar uma STS personalizada para fornecer fichas.A customer might choose to use a custom STS to provide tokens. As razões incluem:Reasons include:

  • O fornecedor de identidade (IDP) utilizado pelo cliente não suporta STS.The identity provider (IDP) used by the customer doesn't support STS. Neste caso, uma STS personalizada pode ser uma opção.In this case, a custom STS might be an option.

  • O cliente poderá necessitar de um controlo mais flexível ou mais apertado para integrar o STS com o sistema de faturação de assinantes do cliente.The customer might need more flexible or tighter control to integrate STS with the customer's subscriber billing system.

    Por exemplo, um operador de serviço OTT pode oferecer vários pacotes de assinantes, tais como premium, básico e desportivo.For example, an OTT service operator might offer multiple subscriber packages, such as premium, basic, and sports. O operador pode querer comparar as reclamações num token com o pacote de um assinante para que apenas o conteúdo de um pacote específico seja disponibilizado.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. Neste caso, uma STS personalizada proporciona a flexibilidade e controlo necessários.In this case, a custom STS provides the needed flexibility and control.

  • Para incluir reclamações personalizadas no token para selecionar entre diferentes ContentKeyPolicyOptions com diferentes parâmetros de licença DRM (uma licença de subscrição versus uma licença de aluguer).To include custom claims in the token to select between different ContentKeyPolicyOptions with different DRM license parameters (a subscription license versus a rental license).

  • Incluir uma reclamação que represente o identificador chave de conteúdo da chave a que o símbolo concede acesso.To include a claim representing the content key identifier of the key that the token grants access to.

Quando utilizar uma STS personalizada, devem ser feitas duas alterações:When you use a custom STS, two changes must be made:

  • Ao configurar o serviço de entrega de licenças para um ativo, precisa de especificar a chave de segurança utilizada para a verificação pelo STS personalizado em vez da chave atual do 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.
  • Quando um token JTW é gerado, uma chave de segurança é especificada em vez da chave privada do certificado X509 atual em 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.

Existem dois tipos de chaves de segurança:There are two types of security keys:

  • Chave simétrica: A mesma chave é utilizada para gerar e verificar um JWT.Symmetric key: The same key is used to generate and to verify a JWT.
  • Chave assimétrica: Um par de chaves público-privado num certificado X509 é usado com uma chave privada para encriptar/gerar um JWT e com a chave pública para verificar o 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.

Se utilizar o .NET Framework/C# como plataforma de desenvolvimento, o certificado X509 utilizado para uma chave de segurança assimétrica deve ter um comprimento de chave de pelo menos 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. Este comprimento chave é um requisito do sistema de classe.IdentityModel.Tokens.X509AsymmetricSecurityKey em .NET Framework.This key length is a requirement of the class System.IdentityModel.Tokens.X509AsymmetricSecurityKey in .NET Framework. Caso contrário, a seguinte exceção é lançada: IDX10630: O 'System.IdentityModel.Tokens.X509AsymmetricSecurityKey' para a assinatura não pode ser menor do que as bits de '2048'.Otherwise, the following exception is thrown: IDX10630: The 'System.IdentityModel.Tokens.X509AsymmetricSecurityKey' for signing can't be smaller than '2048' bits.

CHAVE personalizada e URL de aquisição de licençaCustom key and license acquisition URL

Utilize os seguintes modelos se pretender especificar um serviço de entrega de licença/chave diferente (não serviços de mídia).Use the following templates if you want to specify a different license/key delivery service (not Media Services). Os dois campos substituíveis nos modelos estão lá para que possa partilhar a sua política de streaming em muitos ativos em vez de criar uma política de streaming por ativo.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: Modelo para o URL do serviço personalizado que entrega chaves aos jogadores do utilizador final.EnvelopeEncryption.CustomKeyAcquisitionUrlTemplate: Template for the URL of the custom service that delivers keys to end-user players. Não é necessário quando se está a usar o Azure Media Services para emitir chaves.It isn't required when you're using Azure Media Services for issuing keys.

    O modelo suporta fichas substituíveis que o serviço irá atualizar no tempo de execução com o valor específico do pedido.The template supports replaceable tokens that the service will update at runtime with the value specific to the request. Os valores simbólicos atualmente suportados são:The currently supported token values are:

    • {AlternativeMediaId}, que é substituído pelo valor de StreamingLocatorId.AlternativeMediaId.{AlternativeMediaId}, which is replaced with the value of StreamingLocatorId.AlternativeMediaId.
    • {ContentKeyId}, que é substituído pelo valor do identificador da chave solicitada.{ContentKeyId}, which is replaced with the value of the identifier of the requested key.
  • StreamingPolicyPlayReadyConfiguration.CustomLicenseAcquisitionUrlTemplate: Modelo para o URL do serviço personalizado que entrega licenças aos jogadores de utilizador final.StreamingPolicyPlayReadyConfiguration.CustomLicenseAcquisitionUrlTemplate: Template for the URL of the custom service that delivers licenses to end-user players. Não é necessário quando se está a usar a Azure Media Services para emitir licenças.It isn't required when you're using Azure Media Services for issuing licenses.

    O modelo suporta fichas substituíveis que o serviço irá atualizar no tempo de execução com o valor específico do pedido.The template supports replaceable tokens that the service will update at runtime with the value specific to the request. Os valores simbólicos atualmente suportados são:The currently supported token values are:

    • {AlternativeMediaId}, que é substituído pelo valor de StreamingLocatorId.AlternativeMediaId.{AlternativeMediaId}, which is replaced with the value of StreamingLocatorId.AlternativeMediaId.
    • {ContentKeyId}, que é substituído pelo valor do identificador da chave solicitada.{ContentKeyId}, which is replaced with the value of the identifier of the requested key.
  • StreamingPolicyWidevineConfiguration.CustomLicenseAcquisitionUrlTemplate: O mesmo que o modelo anterior, apenas para o Widevine.StreamingPolicyWidevineConfiguration.CustomLicenseAcquisitionUrlTemplate: Same as the previous template, only for Widevine.

  • StreamingPolicyFairPlayConfiguration.CustomLicenseAcquisitionUrlTemplate: O mesmo que o modelo anterior, apenas para FairPlay.StreamingPolicyFairPlayConfiguration.CustomLicenseAcquisitionUrlTemplate: Same as the previous template, only for FairPlay.

Por exemplo:For example:

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

ContentKeyId tem um valor da chave solicitada.ContentKeyId has a value of the requested key. Pode usar AlternativeMediaId se quiser mapear o pedido a uma entidade do seu lado.You can use AlternativeMediaId if you want to map the request to an entity on your side. Por exemplo, AlternativeMediaId pode ser usado para ajudá-lo a procurar permissões.For example, AlternativeMediaId can be used to help you look up permissions.

Para exemplos REST que usam URLs de aquisição de licença/chave personalizados, consulte Políticas de Streaming - Criar.For REST examples that use custom license/key acquisition URLs, see Streaming Policies - Create.

Nota

Widevine é um serviço fornecido pela Google Inc. e sujeito aos termos de serviço e Política de Privacidade da Google, Inc.Widevine is a service provided by Google Inc. and subject to the terms of service and Privacy Policy of Google, Inc.

Resolução de problemasTroubleshoot

Se tiver o MPE_ENC_ENCRYPTION_NOT_SET_IN_DELIVERY_POLICY erro, certifique-se de que especifica a política de streaming apropriada.If you get the MPE_ENC_ENCRYPTION_NOT_SET_IN_DELIVERY_POLICY error, make sure that you specify the appropriate streaming policy.

Se tiver erros que terminam com _NOT_SPECIFIED_IN_URL , certifique-se de que especifica o formato de encriptação no URL.If you get errors that end with _NOT_SPECIFIED_IN_URL, make sure that you specify the encryption format in the URL. Um exemplo é …/manifest(format=m3u8-cmaf,encryption=cbcs-aapl).An example is …/manifest(format=m3u8-cmaf,encryption=cbcs-aapl). Consulte os protocolos de streaming e os tipos de encriptação.See Streaming protocols and encryption types.

Faça perguntas, dê feedback, obtenha atualizaçõesAsk questions, give feedback, get updates

Consulte o artigo da comunidade Azure Media Services para ver diferentes formas de fazer perguntas, dar feedback e obter atualizações sobre os 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.