媒體服務 v3 與 Widevine 授權範本的概觀
Azure 媒體服務可讓您使用 Google Widevine 來加密您的內容。 媒體服務也提供傳遞 Widevine 授權的服務。 您可以使用 Azure 媒體服務 API 來設定 Widevine 授權。 當播放程式嘗試播放以 Widevine 保護的內容時,會將要求傳送到授權傳遞服務來取得授權。 如果授權服務核准要求,服務就會發出授權。 授權會傳送至用戶端,並用來解密及播放指定內容。
注意
GovCloud 區域無法使用 Widevine。
Widevine 授權要求會格式化為 JSON 訊息。
{
"payload":"<license challenge>",
"content_id": "<content id>"
"provider": "<provider>"
"allowed_track_types":"<types>",
"content_key_specs":[
{
"track_type":"<track type 1>"
},
{
"track_type":"<track type 2>"
},
…
],
"policy_overrides":{
"can_play":<can play>,
"can persist":<can persist>,
"can_renew":<can renew>,
"rental_duration_seconds":<rental duration>,
"playback_duration_seconds":<playback duration>,
"license_duration_seconds":<license duration>,
"renewal_recovery_duration_seconds":<renewal recovery duration>,
"renewal_server_url":"<renewal server url>",
"renewal_delay_seconds":<renewal delay>,
"renewal_retry_interval_seconds":<renewal retry interval>,
"renew_with_usage":<renew with usage>
}
}
注意
您可建立只有「{}」、不含任何值的空白訊息。隨即以預設值建立授權範本。 大部分案例的預設工作。 以 Microsoft 為基礎的授權傳遞案例應一律使用預設值。 若需要設定 "provider" 與 "content_id" 值,提供者必須符合 Widevine 認證。
JSON 訊息
名稱 | 值 | 描述 |
---|---|---|
payload | Base64 編碼字串 | 用戶端傳送的授權要求。 |
content_id | Base64 編碼字串 | 用來針對每個 content_key_specs.track_type 衍生金鑰識別碼與內容金鑰的識別碼。 |
provider | 字串 | 用來查閱內容金鑰和原則。 若將 Microsoft 金鑰傳遞用於 Widevine 授權傳遞,系統會忽略此參數。 |
policy_name | 字串 | 先前已登錄原則的名稱。 選擇性。 |
allowed_track_types | 列舉 | SD_ONLY 或 SD_HD。 控制在授權中包含的內容金鑰。 |
content_key_specs | JSON 結構的陣列,請參閱<內容金鑰規格>一節。 | 更細部控制要傳回的內容金鑰。 如需詳細資訊,請參閱「內容金鑰規格」一節。僅可指定 allowed_track_types 和 content_key_specs 值其中之一。 |
use_policy_overrides_exclusively | 布林值,true 或 false | 使用 policy_overrides 所指定的原則屬性,並略過先前儲存的所有原則。 |
policy_overrides | JSON 結構,請參閱<原則覆寫>一節。 | 此授權的原則設定。 如果此資產具有預先定義的原則,就會使用這些指定的值。 |
session_init | JSON 結構,請參閱<工作階段初始化>一節。 | 選擇性資料會傳遞至授權。 |
parse_only | 布林值,true 或 false | 剖析授權要求,但不會發出任何授權。 不過,授權要求中的值會在回應中傳回。 |
內容金鑰規格
若既有原則已存在,則無須在內容金鑰規格中指定任何值。與此內容相關的既有原則用於決定輸出保護方式,例如:高頻寬數位內容保護 (HDCP) 和複製一般管理系統 (CGMS)。 如果預先存在的原則未向 Widevine 授權伺服器登錄,內容提供者可以在授權要求中插入值。
必須對所有追蹤指定每個 content_key_specs 值,不論 use_policy_overrides_exclusively 選項為何。
名稱 | 值 | 描述 |
---|---|---|
content_key_specs track_type | 字串 | 追蹤類型名稱。 如果授權要求中指定 content_key_specs,則請務必明確指定所有追蹤類型。 未這樣做會導致無法播放過去 10 秒。 |
content_key_specs security_level |
uint32 | 定義用戶端對於播放的穩健性需求。 以軟體為基礎白箱加密是必要的。 軟體加密和模糊化的解碼器是必要的。 金鑰資料和加密作業必須在支援硬體的受信任執行環境中執行。 內容的加密和解密必須在支援硬體的受信任執行環境中執行。 加密、解密和媒體 (壓縮和未壓縮) 的所有處理必須在支援硬體的受信任執行環境中處理。 |
content_key_specs required_output_protection.hdc |
字串,以下項目的其中一個:HDCP_NONE、HDCP_V1、HDCP_V2 | 指出是否需要 HDCP。 |
content_key_specs 索引鍵 |
Base64 編碼的字串 |
此資料軌所用的內容金鑰。若要指定,則須為 track_type 或 key_id。 內容提供者可使用此選項插入此追蹤的內容金鑰,而不是讓 Widevine 授權伺服器產生或查閱金鑰。 |
content_key_specs.key_id | Base64 編碼的二進位字串,16 位元組 | 金鑰的唯一識別碼。 |
原則覆寫
名稱 | 值 | 描述 |
---|---|---|
policy_overrides.can_play | 布林值,true 或 false | 表示允許播放內容。 預設值為 false。 |
policy_overrides.can_persist | 布林值,true 或 false | 表示可以將授權保存到非揮發性儲存體,供離線使用。 預設值為 false。 |
policy_overrides.can_renew | 布林值,true 或 false | 表示允許更新此授權。 如果為 true,則在授權期間可以透過活動訊號延長。 預設值為 false。 |
policy_overrides.license_duration_seconds | int64 | 指出此特定授權的期間。 值為 0 表示期間沒有限制。 預設值為 0。 |
policy_overrides.rental_duration_seconds | int64 | 指出允許播放的期間。 值為 0 表示期間沒有限制。 預設值為 0。 |
policy_overrides.playback_duration_seconds | int64 | 在授權期間內開始播放後的檢視時段。 值為 0 表示期間沒有限制。 預設值為 0。 |
policy_overrides.renewal_server_url | 字串 | 此授權的所有活動訊號 (更新) 要求會導向到指定 URL。 只有在 can_renew 為 true 時才會使用這個欄位。 |
policy_overrides.renewal_delay_seconds | int64 | license_start_time 之後經過幾秒才會第一次嘗試更新。 只有在 can_renew 為 true 時才會使用這個欄位。 預設值為 0。 |
policy_overrides.renewal_retry_interval_seconds | int64 | 指定若發生失敗,後續授權更新要求之間的延遲秒數。 只有在 can_renew 為 true 時才會使用這個欄位。 |
policy_overrides.renewal_recovery_duration_seconds | int64 | 嘗試進行更新時可繼續播放的時段,不過因為授權伺服器發生後端問題而未成功。 值為 0 表示期間沒有限制。 只有在 can_renew 為 true 時才會使用這個欄位。 |
policy_overrides.renew_with_usage | 布林值,true 或 false | 表示開始使用時會傳送授權以進行更新。 只有在 can_renew 為 true 時才會使用這個欄位。 |
工作階段初始化
名稱 | 值 | 描述 |
---|---|---|
provider_session_token | Base64 編碼字串 | 此工作階段權杖會傳回到授權,並且會在後續的更新作業中存在。 工作階段權杖不會在工作階段之外保存。 |
provider_client_token | Base64 編碼字串 | 要在授權回應中傳回的用戶端權杖。 如果授權要求包含用戶端權杖,則會忽略此值。 用戶端權杖會在授權工作階段之外保存。 |
override_provider_client_token | 布林值,true 或 false | 如果為 false 並且授權要求包含用戶端權杖,請使用來自要求的權杖,即使此結構中已指定用戶端權杖亦然。 如果為 true,則一律使用這個結構中指定的權杖。 |
其他注意事項
- Widevine 是 Google Inc. 所提供的服務,並受到 Google Inc. 的服務條款和隱私權原則所約束。
取得說明及支援
您可以連絡媒體服務並提出問題,或遵循下列其中一種方法來追蹤我們的更新:
- 問與答
-
Stack Overflow。 使用
azure-media-services
標記問題。 - @MSFTAzureMedia 或使用 @AzureSupport 來要求支援。
- 透過 Azure 入口網站 開啟支援票證。