全部產品
Search
文件中心

ApsaraVideo VOD:鑒權方式A說明

更新時間:Jul 13, 2024

URL鑒權功能主要用於保護使用者網站資源不被非法網站下載盜用。ApsaraVideo for VOD提供了三種鑒權方式,本文為您詳細介紹鑒權方式A的原理和樣本說明。

原理說明

鑒權方式A加密URL構成

http://DomainName/Filename?auth_key=timestamp-rand-uid-md5hash

鑒權欄位說明

欄位

描述

DomainName

ApsaraVideo for VOD的網域名稱。

Filename

實際回源訪問的URL,鑒權時Filename需以正斜線(/)開頭。

auth_key

您設定的鑒權密鑰。

timestamp

簽算伺服器產生鑒權URL的時間,與鑒權URL的預設有效時間長度共同控制鑒權URL的失效時間。時間點取自簽算伺服器的“UTC+8”時間,格式為:YYYYMMDDHHMM。

說明

多數情況下,鑒權URL的實際有效時間長度為ApsaraVideo for VOD中配置的預設有效時間長度。有時在簽算伺服器上配置了鑒權URL的有效時間長度情況下,此時,timestamp=簽算伺服器上的Unix時間戳記+簽算伺服器上配置的有效時間長度;鑒權URL實際有效時間長度=timestamp+點播配置的鑒權URL的預設有效時間長度

rand

隨機數,一般取值為0。如果要確保每次產生的URL不同,建議使用UUID,不能包含中劃線(-),例如:477b3bbc253f467b8def6711128c****。

uid

使用者ID,暫未使用(設定成0即可)。

md5hash

通過MD5演算法計算出的驗證字串。由數字0~9和小寫英文字母a~z混合組成,固定長度為32。

md5hash的值通過以下字串計算得到。

sstring = "URI-timestamp-rand-uid-PrivateKey"
md5hash = md5sum(sstring)
  • URI:使用者的請求對象相對位址,不包含參數,例如:/Filename。

  • PrivateKey:ApsaraVideo for VOD控制台配置的主Key或備Key,二者皆可。配置方法請參見開啟鑒權並配置鑒權URL

  • md5sum:表示計算MD5值,請使用開發語言對應的函數。

鑒權邏輯說明

CDN伺服器接到資源訪問請求後,判斷最終產生鑒權URL請求中的timestamp+點播控制台URL鑒權中配置的預設有效時間長度是否小於目前時間。

  • 如果timestamp+預設有效時間長度小於目前時間,伺服器判定到期失效,並返回HTTP 403錯誤。

  • 如果timestamp+預設有效時間長度大於目前時間,則以sstring方式構造出一個字串(參考上述表格中sstring構造方式),然後使用MD5演算法算出md5hash的值,再將計算出的md5hash值與使用者訪問請求中攜帶的md5hash的值進行比對。

    • 結果不一致,鑒權失敗,返回HTTP 403錯誤。

    • 結果一致,鑒權通過,返回資源請求。

      說明

      當鑒權通過時,會去掉URL中與鑒權相關的那部分參數,可以提高快取命中率,減少回源流量。

      • 實際回源的URL格式:http://DomainName/FileName

      • 實際產生緩衝key的URL格式:http://DomainName/FileName

鑒權URL拼接樣本說明

通過以下樣本說明,您可以準確理解鑒權方式A的實現方式。

樣本條件

  • 回源請求對象:

    http://example.aliyundoc.com/video/standard/test.mp4
    說明

    如果您的回源請求對象中有中文漢字,請先對其進行URL轉碼(即Encode),再進行鑒權URL的拼接。

  • 設定密鑰(PrivateKey)為:aliyunvodexp1234。

  • 簽算伺服器產生鑒權URL的時間(timestamp)為:2021-08-01 00:00:00(UTC+8),轉換為十進位的整型數值為1627747200。

拼接流程

  1. CDN伺服器構造一個用於計算md5hash的簽名字串。

    /video/standard/test.mp4-1627747200-0-0-aliyunvodexp1234
  2. 根據該簽名字串,CDN伺服器計算出md5hash

    HashValue = md5sum("/video/standard/test.mp4-1627747200-0-0-aliyunvodexp1234") = 0e9048c8c7de46b6015618f42de7****
  3. 產生鑒權URL。

    http://example.aliyundoc.com/video/standard/test.mp4?auth_key=1627747200-0-0-0e9048c8c7de46b6015618f42de7****

當使用者使用鑒權URL進行訪問時,如果ApsaraVideo for VOD伺服器計算出來的md5hash值與訪問請求中帶的md5hash值相同,都為0e9048c8c7de46b6015618f42de7****,則鑒權通過,反之鑒權失敗。