Share via


ContentKeyAuthorizationPolicy

Media Services admite varias formas de autenticar a los usuarios que realizan solicitudes de clave. El usuario debe configurar la directiva de autorización de claves y el cliente (reproductor) debe conocerla para que se le entregue la clave. La directiva de autorización de clave de acceso podría tener una o más restricciones de autorización: abrir, restricción de token o restricción de IP. Use ContentKeyAuthorizationPolicyOption para especificar las opciones de autorización. A continuación, agrega las opciones creadas a ContentKeyAuthorizationPolicy.

Si planea tener varias claves de contenido que requieran la configuración de directiva de muestra, se recomienda crear una directiva de autorización única y volver a usarla con varias claves de contenido.

Tenga en cuenta que el servicio de entrega de claves almacena en caché ContentKeyAuthorizationPolicy y sus objetos relacionados (opciones y restricciones de directiva) durante 15 minutos. Si crea y ContentKeyAuthorizationPolicy especifica usar una restricción de "Token", pruébela y, a continuación, actualice la directiva a la restricción "Abrir", la directiva tardará aproximadamente 15 minutos antes de que la directiva cambie a la versión "Abrir" de la directiva.

Este tema describe la entidad ContentKeyAuthorizationPolicy y muestra cómo utilizarla.

Importante

Al obtener acceso a las entidades de Media Services, debe establecer los campos de encabezado específicos y los valores en las solicitudes HTTP.
Para obtener más información, consulte Configuración para el desarrollo de api REST de Media Services y conexión a Media Services con la API REST de Media Services.

Propiedades de la entidad ContentKeyAuthorizationPolicy

Propiedad Tipo Descripción
Id

Solo lectura. Establecido por Servicios multimedia.
Edm.String Identificador único.
Name Edm.String Nombre descriptivo de la directiva de autorización de la clave de contenido.
Options Colección de ContentKeyAuthorizationPolicyOptions. Una lista de las diferentes maneras en que puede autorizarse a un cliente para acceder a la clave de contenido.

Crear ContentKeyAuthorizationPolicy

En el ejemplo siguiente se crea una ContentKeyAuthorizationPolicy. Puede probar el ejemplo en la pestaña Compositor de Fiddler.

Para obtener la versión más reciente x-ms-version:, consulte REST de Media Services.

Encabezados de solicitud:

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  
  

Cuerpo de la solicitud:

{"Name" : "Authorization Policy" }   

Si es correcto, se devolverá un código de estado HTTP/1.1 201 Created junto con una representación de la entidad creada en el cuerpo de respuesta.

Crear ContentKeyAuthorizationPolicyOption

En el ejemplo siguiente se crea un contentKeyAuthorizationPolicyOption con los siguientes valores establecidos: un Open método"KeyDeliveryType":2 de entrega de claves de restricción de autorización ("KeyRestrictionType":0) y BaselineHttp (protocolo de clave HTTP de línea de base MPEG). Puede probar el ejemplo en la pestaña Compositor de Fiddler.

Para obtener la versión más reciente x-ms-version:, consulte REST de Media Services.

Encabezados de solicitud:

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  

Cuerpo de la solicitud:

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

Si es correcto, se devolverá un código de estado HTTP/1.1 201 Created junto con una representación de la entidad creada en el cuerpo de respuesta.

En el ejemplo siguiente se crea un contentKeyAuthorizationPolicyOption con los siguientes valores establecidos: un Token método"KeyDeliveryType":2 de entrega de claves de restricción de autorización ("KeyRestrictionType":1) y BaselineHttp (protocolo de clave HTTP de línea de base MPEG).

Para obtener la versión más reciente x-ms-version:, consulte REST de Media Services.

Encabezados de solicitud:

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  
  

Cuerpo de la solicitud:

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

Asociar opciones con ContentKeyAuthorizationPolicy

En el ejemplo siguiente se asocia ContentKeyAuthorizationPolicy con ContentKeyAuthorizationPolicyOption. Puede probar el ejemplo en la pestaña Compositor de Fiddler.

Para obtener la versión más reciente x-ms-version:, consulte REST de Media Services.

Encabezados de solicitud:

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  
  

Cuerpo de la solicitud:

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

Si es correcto, se devolverá un código de estado HTTP/1.1 200 OK junto con una representación de la entidad creada en el cuerpo de respuesta.