你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

ContentKeyAuthorizationPolicy

媒体服务支持通过多种方式对发出密钥请求的用户进行身份验证。 必须配置内容密钥授权策略,客户端(播放器)必须遵守该策略,才能将密钥传送到客户端。 内容密钥授权策略可能受到一种或多种授权限制:开放、令牌限制或 IP 限制。 使用 ContentKeyAuthorizationPolicyOption 指定授权选项。 然后,将创建的选项添加到 ContentKeyAuthorizationPolicy

如果你计划拥有多个内容密钥,它们需要作为样本的策略配置,则我们强烈建议你创建单个授权策略,并将其重复用于多个内容密钥。

请注意,密钥传送服务 ContentKeyAuthorizationPolicy 缓存及其相关对象 (策略选项和限制) 15 分钟。 如果创建 ContentKeyAuthorizationPolicy 并指定使用“令牌”限制,然后对其进行测试,然后将策略更新为“打开”限制,则大约需要 15 分钟,策略才会切换到策略的“打开”版本。

本主题介绍 ContentKeyAuthorizationPolicy 并说明如何使用此实体。

重要

访问媒体服务中的实体时,必须在 HTTP 请求中设置特定标头字段和值。
有关详细信息,请参阅 设置媒体服务 REST API 开发 和使用 媒体服务 REST API 连接到媒体服务

ContentKeyAuthorizationPolicy 实体属性

属性 类型 说明
Id

只读。 由 Media Services 设置。
Edm.String 唯一标识符。
Name Edm.String 内容密钥授权策略的友好名称。
Options ContentKeyAuthorizationPolicyOption的集合。 可以授权客户端访问内容密钥的不同方式列表。

创建 ContentKeyAuthorizationPolicy

以下示例创建 ContentKeyAuthorizationPolicy。 可以在 Fiddler 的“编辑器”选项卡中试用该示例。

若要获取最新的 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 (MPEG 基线 HTTP 密钥协议) 密钥传送方法 ("KeyDeliveryType":2) 。 可以在 Fiddler 的“编辑器”选项卡中试用该示例。

若要获取最新的 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 (MPEG 基线 HTTP 密钥协议) 密钥传送方法 ("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 的“编辑器”选项卡中试用该示例。

若要获取最新的 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 正常”状态代码将与所创建实体的表示形式一起在响应正文中返回。