Поделиться через


ContentKeyAuthorizationPolicy

Службы мультимедиа поддерживают несколько способов аутентификации пользователей, которые запрашивают ключи. Чтобы получить ключ содержимого, клиент (проигрыватель) должен соответствовать заданной для этого ключа политике авторизации. Для политики авторизации ключа содержимого можно задать одно или несколько из ограничений авторизации: открытая авторизация, с ограничением по маркеру или с ограничением по IP-адресу. Для указания параметров авторизации используется ContentKeyAuthorizationPolicyOption . Затем вы можете добавить созданные параметры в ContentKeyAuthorizationPolicy.

Если планируется использование нескольких ключей контента с одной и той же конфигурацией политики, настоятельно рекомендуется создать одну политику авторизации и использовать ее с несколькими ключами контента.

Обратите внимание, что служба доставки ключей кэширует ContentKeyAuthorizationPolicy и связанные объекты (варианты и ограничения политики) на 15 минут. Если создать политику ContentKeyAuthorizationPolicy и указать использование ограничения "Token", затем протестировать ее, а потом обновить политику, задав ограничение "Open", то пройдет примерно 15 минут, прежде чем политика переключится на версию "Open".

В этом разделе описывается ContentKeyAuthorizationPolicy и демонстрируется использование этой сущности.

Важно!

При доступе к сущностям в службах мультимедиа необходимо задать определенные поля и значения заголовков в HTTP-запросах.
Дополнительные сведения см. в статье Настройка rest API Служб мультимедиа Разработка и подключение к Службам мультимедиа с помощью REST API Служб мультимедиа.

Свойства сущности ContentKeyAuthorizationPolicy

Свойство Тип Описание
Id

Только для чтения. Задается Media Services.
Edm.String Уникальный идентификатор.
Name Edm.String Понятное имя политики авторизации ключа контента.
Options Коллекция объектов ContentKeyAuthorizationPolicyOption. Список способов авторизации клиента для доступа к ключу контента.

Создайте ContentKeyAuthorizationPolicy.

В следующем примере создается ContentKeyAuthorizationPolicy. Пример можно опробовать на вкладке Fiddler's Composer.

Чтобы получить последнюю версию x-ms-version:, см. раздел REST Служб мультимедиа.

Заголовки запроса:

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  
  

Тело запроса:

{"Name" : "Authorization Policy" }   

При успешном выполнении возвращается код состояния HTTP/1.1 201 Создано вместе с представлением созданной сущности в тексте ответа.

Создайте ContentKeyAuthorizationPolicyOption.

В следующем примере создается ContentKeyAuthorizationPolicyOption со следующими установленными значениями: ограничение авторизации Open ("KeyRestrictionType":0) и способ доставки ключей BaselineHttp (базовый протокол HTTP ключей MPEG) ("KeyDeliveryType":2). Пример можно опробовать на вкладке Fiddler's Composer.

Чтобы получить последнюю версию x-ms-version:, см. раздел REST Служб мультимедиа.

Заголовки запроса:

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  

Тело запроса:

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

При успешном выполнении возвращается код состояния HTTP/1.1 201 Создано вместе с представлением созданной сущности в тексте ответа.

В следующем примере создается ContentKeyAuthorizationPolicyOption со следующими установленными значениями: ограничение авторизации Token ("KeyRestrictionType":1) и способ доставки ключей BaselineHttp (базовый протокол HTTP ключей MPEG) ("KeyDeliveryType":2).

Чтобы получить последнюю версию x-ms-version:, см. раздел REST Служб мультимедиа.

Заголовки запроса:

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  
  

Тело запроса:

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

Связывание параметров с ContentKeyAuthorizationPolicy

В следующем примере ContentKeyAuthorizationPolicy связывается с ContentKeyAuthorizationPolicyOption. Пример можно опробовать на вкладке Fiddler's Composer.

Чтобы получить последнюю версию x-ms-version:, см. раздел REST Служб мультимедиа.

Заголовки запроса:

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  
  

Тело запроса:

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

При успешном выполнении возвращается код состояния HTTP/1.1 200 OK вместе с представлением созданной сущности в тексте ответа.