URL鑒權
更新時間 2024-03-22 17:32:24
最近更新時間: 2024-03-22 17:32:24
分享文章
本文簡述URL鑒權的適用場景和配置方法。
功能介紹
為保障直播資源不被非法盜用,避免產生不必要的帶寬浪費,您可以使用視頻直播的URL鑒權功能,在主播推流或播放URL中加上鑒權信息。在主播請求直播推流或觀眾請求播放時,CDN會對其URL帶的加密信息進行合法性判斷,僅校驗通過的請求會予以響應,其它非法的訪問將予以拒絕,從而有效地保護直播資源。
適用場景
- 需要對站點資源限制用戶訪問,避免資源被惡意下載或者非法盜用。
- 請求的資源都具有一定的時效性,超過時效則不允許訪問。
注意事項
- 配置URL鑒權需要客戶端跟CDN配合一起開啟。
- 如果您的鑒權URL中含有中文或特殊字符,需先進行URL轉碼(即Encode)后使用。
前提條件
- 客戶提供用于計算加密串的key值。
- 客戶與CDN計算規則、校驗邏輯統一。
鑒權原理
訪問URL構成示例://DomainName/AppName/StreamName?encrypt=xxx×tamp=xxx。視頻直播服務器拿到請求后,會按照如下步驟進行校驗:
- 是否攜帶鑒權參數。如果沒有攜帶鑒權參數,認為請求非法,返回HTTP 403錯誤。
- 時間校驗:判斷系統當前時間是否在時間戳有效期內。超出有效期,認為過期失效并返回HTTP 403錯誤。
- 加密串校驗:時間校驗通過后,比對CDN服務器計算出來的md5hash值與訪問請求中帶的md5hash值是否相同,結果一致則認為鑒權通過并返回直播流,否則鑒權失敗返回HTTP 403響應碼。
- md5hash規則:MD5(uri&time&key)【注意:"&"僅用于區分標識演示用途,實際不加入鑒權組合內】
操作步驟
以推拉流場景下的拉流域名為例,操作步驟如下:
-
登錄。
-
在【域名列表】頁面,單擊目標域名操作列中的【編輯】。
-
單擊【訪問控制】。
-
單擊【URL鑒權】。
-
單擊URL鑒權開關進行啟用。
-
配置URL鑒權參數。
參數 說明 鑒權key 設定的鑒權秘鑰,由大小寫字母與數字組成。 時間戳參數名 請求URL中用于校驗時間過期的參數名稱。未配置時默認timestamp。 加密串參數名 請求URL中用于校驗加密串的參數名稱。未配置時默認為encrypt。 時間戳類型 鑒權URL的時間類型:
1. URL生成時間:值為1970年1月1日以來的當前時間秒數 。該場景下與鑒權URL有效時長共同控制鑒權URL的失效時間。鑒權URL實際有效期=timestamp+CDN配置的有效時長。
2. 過期時間:值為1970年1月1日以來的到鑒權過期時刻的時間秒數。該場景下通過視頻直播服務器接收到客戶端請求的系統時間與請求URL中的timestamp進行比對,來判斷時間是否過期。有效時長 當【時間戳類型】選擇【URL生成時間】時,需要配置該參數。 時間戳格式 時間戳參數支持16進制時間戳、10進制時間戳、以及年月日時分秒格式。 鑒權范圍 支持配置需要鑒權的協議,例如只針對FLV請求配置URL鑒權。 -
配置完成后,單擊【確定】。
-
單擊頁面右下方的【提交保存】。
配置示例
假設鑒權key為ctyuntest123、時間戳參數名為timestamp、加密串參數名為encrypt、時間戳類型為url生成時間、有效時長配置為600min、時間戳格式為年月日時分秒、鑒權范圍為flv。
則鑒權URL生成示例如下:
- 原始url://DomainName/live/123.flv
- url生成時間:2024年3月19日15:00:00
- 鑒權key:ctyuntest123
- 時間戳參數名:timestamp
timestamp=20240319150000
- 加密串參數名:encrypt
encrypt=MD5(uri&time&key)=MD5(/live/123.flv20240319150000ctyuntest123)=f27fdb4f82f409e330803aa5896b111e
所以,攜帶鑒權參數的URL為://DomainName/live/123.flv?timestamp=20240319150000&encrypt=f27fdb4f82f409e330803aa5896b111e