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的實現方式。
- 回源請求對象。
http://cdn.example.com/4/44/44c0909bcfc20a01afaf256ca99a8b8b.mp3
- 密鑰為:aliyuncdnexp1234。
- 訪問原始伺服器時間為: 201508150800。
- CDN伺服器構造一個用於計算
Hashvalue
的簽名字串。aliyuncdnexp1234201508150800/4/44/44c0909bcfc20a01afaf256ca99a8b8b.mp3
- 伺服器根據簽名字串
Hashvalue
計算md5hash
。md5hash = md5sum("aliyuncdnexp1234201508150800/4/44/44c0909bcfc20a01afaf256ca99a8b8b.mp3") = 9044548ef1527deadafa49a890a377f0
- 加密URL請求。
说明 如果您加密URL中有中文漢字,請先對其進行URL轉碼(即encode),然後執行該步驟。
http://cdn.example.com/201508150800/9044548ef1527deadafa49a890a377f0/4/44/44c0909bcfc20a01afaf256ca99a8b8b.mp3
如果計算出來的 md5hash
值與請求中帶的 md5hash
值相同,都為 9044548ef1527deadafa49a890a377f0 ,則鑒權通過;反之鑒權失敗。