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