鑒權方式A
更新時間 2024-10-10 17:46:06
最近更新時間: 2024-10-10 17:46:06
分享文章
配置URL鑒權后,CDN會對加密串及時間戳進行校驗,從而有效地保護用戶站點資源。天翼云CDN為您提供三種鑒權方式,本文為您詳細介紹鑒權方式A的原理和示例說明。
原理說明
- 鑒權方式A訪問URL構成:
//DomainName/Filename?auth_key=timestamp-rand-uid-md5hash。
下文以如下URL作為示例://test.daliqc.cn/test/test.mp4?auth_key=timestamp-rand-uid-md5hash。
- URL鑒權字段說明:
| 字段 | 描述 |
|---|---|
| DomainName | CDN加速域名。 |
| Filename | 實際回源訪問的URI,即域名后面"/"開頭截止到"?"之前的部分。即如上示例中的:/test/test.mp4。 |
| auth_key | 設定的鑒權參數名,默認為auth_key,也可自定義。 |
| timestamp | 1. 鑒權URL生成的時間,即:鑒權開始時間,值為從1970年1月1日0點至當前時間的總秒數 ,是十進制整數。 2. 與鑒權URL有效時長共同控制鑒權URL的失效時間。鑒權URL實際有效期=timestamp+CDN配置的鑒權URL有效時長。 |
| rand | 隨機數。0 - 64位隨機字符串,由大小寫字母與數字組成,例如:477b3bbcf6711128c7bec。 |
| uid | 用戶ID,暫未使用,設置成0即可。 |
| md5hash | 通過MD5算法計算出的32位字符串。計算公式如下:md5hash = md5sum(Filename-timestamp-rand-uid-key)。 1. md5加密元素分隔符默認中劃線(-),也可自定義。 2. 這里的key為用戶設定的鑒權秘鑰,長度6到32,由大小寫字母與數字組成,例如:ctcdnkey123。 |
- 校驗方法
CDN服務器接收到請求后,會按照如下步驟進行校驗:
- 鑒權參數校驗:如果沒有攜帶鑒權參數,認為請求非法,返回HTTP 403錯誤。
- 時間校驗:判斷系統當前時間是否在區間[timestamp,timestamp+有效時間]內。超出該區間,認為過期失效并返回HTTP 403錯誤。
- 加密串校驗:時間校驗通過后,比對CDN服務器計算出來的md5hash值與訪問請求中帶的md5hash值是否相同,結果一致則認為鑒權通過并返回文件,否則鑒權失敗返回HTTP 403錯誤。
配置示例
- 配置頁面

- 配置參數說明
| 參數名 | 說明 | 示例 |
|---|---|---|
| 加密key | 設定的鑒權密鑰,多個以英文逗號分割,最多支持3個。 | 123 |
| 加密元素分隔符 | 默認使用中劃線(-),也可自定義。 | - |
| 加密參數 | 默認為auth_key,也可自定義。 | auth_key |
| 鑒權URL有效時長 | 判斷時間戳是否過期,單位秒。 | 300 |
- 示例說明
- 回源請求URL://test.daliqc.cn/test/test.mp4。
- 根據上述配置示例,加密key為123,生成鑒權URL時間為:2023年11月1日0時0分0秒,轉化為十進制的整型數值為:1698768000。
- 需加密的字符串:/test/test.mp4-1698768000-0-0-123。
- 加密字符串:md5hash=md5sum(/test/test.mp4-1698768000-0-0-123)=37e38e6af36a27d1870e0dd2bcfbd18c。
- 鑒權URL://test.daliqc.cn/test/test.mp4?auth_key=1698768000-0-0-37e38e6af36a27d1870e0dd2bcfbd18c。
- CDN服務器接收到請求后,進行校驗:
- 是否攜帶鑒權參數auth_key。如果沒有攜帶,認為請求非法,返回HTTP 403錯誤。
- 根據上述配置示例,鑒權URL有效時長為300s,則判斷系統當前時間是否在2023年11月1日0時0分0秒-2023年11月1日0時5分0秒之間,是則執行后續鑒權邏輯,超過該區間則返回HTTP 403錯誤。
- 時間校驗通過后,比對CDN服務器計算出來的md5hash值與訪問請求中帶的md5hash值是否一致,一致則認為鑒權通過并返回文件,否則鑒權失敗返回HTTP 403錯誤。
注意事項
開啟鑒權方式A,請求的URL會攜帶鑒權參數,緩存key和回源URL默認也會增加對應參數,為避免緩存命中率和回源受到影響需增加緩存及回源配置。
- 緩存配置:忽略鑒權參數緩存,詳情請見:緩存key設置。
配置示例:忽略auth_key參數緩存。
- 回源配置:忽略鑒權參數回源,詳情請見:回源參數改寫。
配置示例:回源刪除auth_key參數。