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

鑒權流程

  • CDN開啟URL鑒權:鑒權通過後,會去掉用戶端發起的請求URL中的鑒權參數,把用戶端發起的請求URL(帶鑒權參數)還原為原始URL,然後使用原始URL來產生緩衝key或者發起回源請求。 开启
  • CDN關閉URL鑒權:CDN關閉URL鑒權,與此同時,用戶端上發起的請求URL裡面也要去掉鑒權參數,否則,如果CDN上的URL鑒權功能已經關閉了,但是用戶端發起的請求URL裡面依然攜帶鑒權參數的話,就會導致CDN無法把用戶端發起的請求URL(帶鑒權參數)還原為原始URL,最終所有請求都無法命中緩衝,均會透傳回來源站點,導致來源站點的流量大漲,同時也會增加來源站點的流量費用。 关闭

原理說明

訪問加密URL格式:

     http://DomainName/timestamp/md5hash/FileName
    
當鑒權通過時,會去掉URL中與鑒權相關的那部分參數(提高快取命中率,減少回源流量):
  • 實際產生緩衝key的URL格式:
    
           http://DomainName/FileName
          
  • 實際回源的URL格式:
    
           http://DomainName/FileName
          
鑒權欄位描述如下表所示。
欄位 描述
DomainName CDN網站的網域名稱。
timestamp 資源失效時間,作為URL的一部分,同時作為計算 md5hash 的一個因子,格式為: YYYYMMDDHHMM,有效時間1800s。

例如您設定訪問時間為2020-08-15 15:00:00,則連結的真正失效時間為2020-08-15 15:30:00。

md5hash 通過md5演算法計算出的驗證串,由數字0-9和小寫英文字母a-z混合組成,固定長度32。
Filename 實際回源訪問的URL,鑒權時Filename需以 / 開頭。

樣本說明

通過以下樣本說明,您可以準確理解鑒權方式B的實現方式。
  1. 回源請求對象。
    
           http://cdn.example.com/4/44/44c0909bcfc20a01afaf256ca99a8b8b.mp3
          
  2. 密鑰為:aliyuncdnexp1234。
  3. 訪問原始伺服器時間為: 201508150800。
  4. CDN伺服器構造一個用於計算 Hashvalue 的簽名字串。
    
           aliyuncdnexp1234201508150800/4/44/44c0909bcfc20a01afaf256ca99a8b8b.mp3
          
  5. 伺服器根據簽名字串 Hashvalue 計算 md5hash
    
           md5hash = md5sum("aliyuncdnexp1234201508150800/4/44/44c0909bcfc20a01afaf256ca99a8b8b.mp3") = 9044548ef1527deadafa49a890a377f0
          
  6. 加密URL請求。
    说明 如果您加密URL中有中文漢字,請先對其進行URL轉碼(即encode),然後執行該步驟。
    
           http://cdn.example.com/201508150800/9044548ef1527deadafa49a890a377f0/4/44/44c0909bcfc20a01afaf256ca99a8b8b.mp3
          

如果計算出來的 md5hash 值與請求中帶的 md5hash 值相同,都為 9044548ef1527deadafa49a890a377f0 ,則鑒權通過;反之鑒權失敗。