Compartilhar via


ContentKeyAuthorizationPolicyOption

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.

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 ContentKeyAuthorizationPolicyOption e mostra como usar essa entidade. Para obter um exemplo mais completo, que mostra como associar ContentKeyAuthorizationPolicyOption ao ContentKeyAuthorizationPolicy, consulte ContentKeyAuthorizationPolicy.

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 ContentKeyAuthorizationPolicyOption

Propriedade Type Descrição
Id

Somente leitura. Configurada pelos Serviços de Mídia.
Edm.String Identificador exclusivo.
Name Edm.String Nome amigável da política de autorização.
KeyDeliveryType

Obrigatórios.
Edm. Int32 Método de entrega da chave de conteúdo ao cliente.

KeyDeliveryType pode ser um dos seguintes: None = 0, PlayReadyLicense = 1, BaselineHttp = 2).
KeyDeliveryConfiguration Edm.String Dados xml específicos do tipo de entrega da chave, definem como a chave é entregue ao cliente.
Restrictions

Obrigatórios.
Uma coleção de propriedades ContentKeyAuthorizationPolicyRestriction ComplexType. É preciso cumprir as exigências definidas em cada restrição para entregar a chave usando os dados de entrega da chave.

Propriedades de ContentKeyAuthorizationPolicyRestriction ComplexType

Propriedade Type Descrição
Name Edm.String Nome amigável da restrição.
KeyRestrictionType

Obrigatórios.
Edm. Int32 Tipo da restrição.

KeyRestrictionType pode ser um dos seguintes: Open = 0, TokenRestricted = 1, IPRestricted = 2.
Requirements Edm. String Requisitos da restrição.

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>"  
      }  
   ]  
}