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


ContentKeyAuthorizationPolicyOption

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

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

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

Важно!

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

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

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

Только для чтения. Задается Media Services.
Edm.String Уникальный идентификатор.
Name Edm.String Понятное имя политики авторизации.
KeyDeliveryType

Обязательный.
EDM. Int32 Метод доставки ключа контента в клиент.

KeyDeliveryType может иметь одно из следующих значений: None = 0, PlayReadyLicense = 1, BaselineHttp = 2).
KeyDeliveryConfiguration Edm.String Данные XML, относящиеся к типу доставки ключа, которые определяют способ доставки ключа в клиент.
Restrictions

Обязательный.
Коллекция свойств ContentKeyAuthorizationPolicyRestriction ComplexType. Для доставки ключа с помощью данных доставки ключа необходимо соблюсти требования, определенные в каждом ограничении.

Свойства ComplexType ContentKeyAuthorizationPolicyRestriction

Свойство Тип Описание
Name Edm.String Понятное имя ограничения.
KeyRestrictionType

Обязательный.
EDM. Int32 Тип ограничения.

KeyRestrictionType может иметь одно из следующих значений: Open = 0, TokenRestricted = 1, IPRestricted = 2.
Requirements EDM. Строка Требования к ограничениям.

Создайте 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>"  
      }  
   ]  
}