Compartilhar via


ContentKeyAuthorizationPolicy

Os serviços de mídia oferecem suporte a várias maneiras de autenticar os usuários que fazem solicitações de chave. A política de autorização de chave de conteúdo deve ser configurada por você e atendida pelo cliente (player) para que a chave seja entregue ao cliente. A política de autorização de chave de conteúdo pode ter uma ou mais restrições de autorização: aberta, restrição de token ou restrição de IP. Você usa ContentKeyAuthorizationPolicyOption para especificar as opções de autorização. As opções criadas para você adicionar ao ContentKeyAuthorizationPolicy.

Se você pretende ter várias chaves de conteúdo que exigem a configuração de política de exemplo, é altamente recomendável criar uma única política de autorização e reutilizá-la com várias chaves de conteúdo.

Observe que o serviço de Entrega de Chaves armazena em cache ContentKeyAuthorizationPolicy seus objetos relacionados (opções de política e restrições) por 15 minutos. Se você criar um ContentKeyAuthorizationPolicy e especificar para usar uma restrição "Token", teste-o e atualize a política para a restrição "Abrir", levará cerca de 15 minutos até que a política mude para a versão "Abrir" da política.

Este tópico descreve ContentKeyAuthorizationPolicy e mostra como usar essa entidade.

Importante

Ao acessar entidades nos serviços de mídia, você deve definir valores e campos de cabeçalho específicos nas suas solicitações HTTP.
Para obter mais informações, consulte Instalação para desenvolvimento de API REST dos Serviços de Mídia e Conexão aos Serviços de Mídia com a API REST dos Serviços de Mídia.

Propriedades da entidade ContentKeyAuthorizationPolicy

Propriedade Type Descrição
Id

Somente leitura. Configurada pelos Serviços de Mídia.
Edm.String Identificador exclusivo.
Name Edm.String O nome amigável da política de autorização da chave de conteúdo.
Options Uma coleção de ContentKeyAuthorizationPolicyOptions. Uma lista com as diversas formas pelas quais um cliente pode ser autorizado a acessar a chave de conteúdo.

Criar ContentKeyAuthorizationPolicy

O exemplo a seguir cria um ContentKeyAuthorizationPolicy. Você pode experimentar o exemplo na guia Compositor do Fiddler.

Para obter o mais recente x-ms-version:, consulte REST dos Serviços de Mídia.

Cabeçalhos de solicitação:

POST https://testrest.cloudapp.net/api/ContentKeyAuthorizationPolicies  
  
Content-Type: application/json  
DataServiceVersion: 1.0;NetFx  
MaxDataServiceVersion: 3.0;NetFx  
Accept: application/json  
Accept-Charset: UTF-8  
User-Agent: Microsoft ADO.NET Data Services  
Authorization: Bearer <token value>  
x-ms-version: 2.19  
  

Corpo da solicitação:

{"Name" : "Authorization Policy" }   

Se o procedimento for bem-sucedido, um código de status HTTP/1.1 201 Criado será emitido junto com uma representação da entidade criada no corpo da resposta.

Criar ContentKeyAuthorizationPolicyOption

O exemplo a seguir cria um ContentKeyAuthorizationPolicyOption com os seguintes valores definidos: um Open método de entrega de chave de restrição de autorização ("KeyRestrictionType":0) e BaselineHttp (protocolo de chave HTTP de linha de base MPEG) ("KeyDeliveryType":2). Você pode experimentar o exemplo na guia Compositor do Fiddler.

Para obter o mais recente x-ms-version:, consulte REST dos Serviços de Mídia.

Cabeçalhos de solicitação:

POST https://testrest.cloudapp.net/api/ContentKeyAuthorizationPolicyOptions HTTP/1.1  
  
Content-Type: application/json  
DataServiceVersion: 3.0;NetFx  
MaxDataServiceVersion: 3.0;NetFx  
Accept: application/json  
Accept-Charset: UTF-8  
User-Agent: Microsoft ADO.NET Data Services  
Authorization: Bearer <token value>  
x-ms-version: 2.19  

Corpo da solicitação:

  
{    
   "Name":"policy",  
   "KeyDeliveryType":2,  
   "KeyDeliveryConfiguration":"",  
   "Restrictions":[    
      {    
         "Name":"HLS Open Authorization Policy",  
         "KeyRestrictionType":0,  
         "Requirements":null  
      }  
   ]  
}  

Se o procedimento for bem-sucedido, um código de status HTTP/1.1 201 Criado será emitido junto com uma representação da entidade criada no corpo da resposta.

O exemplo a seguir cria um ContentKeyAuthorizationPolicyOption com os seguintes valores definidos: um Token método de entrega de chave de restrição de autorização ("KeyRestrictionType":1) e BaselineHttp (protocolo de chave HTTP de linha de base MPEG) ("KeyDeliveryType":2).

Para obter o mais recente x-ms-version:, consulte REST dos Serviços de Mídia.

Cabeçalhos de solicitação:

POST https:/testrest.cloudapp.net/api/ContentKeyAuthorizationPolicyOptions HTTP/1.1  
  
Content-Type: application/json  
DataServiceVersion: 3.0;NetFx  
MaxDataServiceVersion: 3.0;NetFx  
Accept: application/json  
Accept-Charset: UTF-8  
User-Agent: Microsoft ADO.NET Data Services  
Authorization: Bearer <token value>  
x-ms-version: 2.19  
  

Corpo da solicitação:

{    
   "Name":"Token option for HLS",  
   "KeyDeliveryType":2,  
   "KeyDeliveryConfiguration":null,  
   "Restrictions":[    
      {    
         "Name":"Token Authorization Policy",  
         "KeyRestrictionType":1,  
         "Requirements":"<TokenRestrictionTemplate xmlns:i=\"https://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://schemas.microsoft.com/Azure/MediaServices/KeyDelivery/TokenRestrictionTemplate/v1\"><AlternateVerificationKeys><TokenVerificationKey i:type=\"SymmetricVerificationKey\"><KeyValue>dliLr1QQJrATxNuoss2Btvk1KxcDJDHvTgu7fII5LEMGAt1p6J1YAD7I0EVd6D69nEkNUlkSDXfgaJ3cswrf8g==</KeyValue></TokenVerificationKey></AlternateVerificationKeys><Audience>urn:test</Audience><Issuer>http://testacs.com/</Issuer><PrimaryVerificationKey i:type=\"SymmetricVerificationKey\"><KeyValue>tqdCrSPGDZYJ4l3YyWR1NH7OdTvucBm7bU/ZQKPszV/hR54saMgyJK9bA9bay996NtNpcA0OruHETvy885g46A==</KeyValue></PrimaryVerificationKey><RequiredClaims><TokenClaim><ClaimType>urn:microsoft:azure:mediaservices:contentkeyidentifier</ClaimType><ClaimValue i:nil=\"true\" /></TokenClaim></RequiredClaims><TokenType>JWT</TokenType></TokenRestrictionTemplate>"  
      }  
   ]  
}  
  

Associar opções com ContentKeyAuthorizationPolicy

O exemplo a seguir associa ContentKeyAuthorizationPolicy com ContentKeyAuthorizationPolicyOption. Você pode experimentar o exemplo na guia Compositor do Fiddler.

Para obter o mais recente x-ms-version:, consulte REST dos Serviços de Mídia.

Cabeçalhos de solicitação:

POST https://testrest.cloudapp.net/api/ContentKeyAuthorizationPolicies('nb%3Ackpid%3AUUID%3Ac0a7c7cb-09c2-4306-86f5-9e9dc718cd90')/$links/Options  
  
DataServiceVersion: 1.0;NetFx  
MaxDataServiceVersion: 3.0;NetFx  
Accept: application/json  
Accept-Charset: UTF-8  
Content-Type: application/json  
User-Agent: Microsoft ADO.NET Data Services  
Authorization: Bearer <token value>  
x-ms-version: 2.19  
  

Corpo da solicitação:

{ "uri":"https://wamsbayclus001rest-hs.cloudapp.net/api/ContentKeyAuthorizationPolicyOptions('nb%3Ackpoid%3AUUID%3A288f8084-e93b-4d04-90c0-a7af9145b7ae')" }  
  

Se o procedimento for bem-sucedido, um código de status HTTP/1.1 200 OK será emitido junto com uma representação da entidade criada no corpo da resposta.