ContentKeyAuthorizationPolicy
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
.
Se você pretende ter várias chaves de conteúdo que exigem a configuração de política de exemplo, é altamente recomendável criar uma única política de autorização e reutilizá-la com várias chaves de conteúdo.
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 ContentKeyAuthorizationPolicy
e mostra como usar essa entidade.
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 ContentKeyAuthorizationPolicy
Propriedade | Type | Descrição |
---|---|---|
Id Somente leitura. Configurada pelos Serviços de Mídia. |
Edm.String | Identificador exclusivo. |
Name |
Edm.String | O nome amigável da política de autorização da chave de conteúdo. |
Options |
Uma coleção de ContentKeyAuthorizationPolicyOptions. | Uma lista com as diversas formas pelas quais um cliente pode ser autorizado a acessar a chave de conteúdo. |
Criar ContentKeyAuthorizationPolicy
O exemplo a seguir cria um ContentKeyAuthorizationPolicy. 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/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
Corpo da solicitação:
{"Name" : "Authorization Policy" }
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.
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>"
}
]
}
Associar opções com ContentKeyAuthorizationPolicy
O exemplo a seguir associa ContentKeyAuthorizationPolicy com ContentKeyAuthorizationPolicyOption. 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/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
Corpo da solicitação:
{ "uri":"https://wamsbayclus001rest-hs.cloudapp.net/api/ContentKeyAuthorizationPolicyOptions('nb%3Ackpoid%3AUUID%3A288f8084-e93b-4d04-90c0-a7af9145b7ae')" }
Se o procedimento for bem-sucedido, um código de status HTTP/1.1 200 OK será emitido junto com uma representação da entidade criada no corpo da resposta.