直播推流、直播錄製、直播截圖、雙流災備回調支援回調鑒權。開啟鑒權後,ApsaraVideo for Live發起回調請求時,在HTTP(S)要求標頭中攜帶鑒權參數,供回調訊息接收服務端進行簽名校正和時間校正,以防止非法或無效請求。
鑒權參數
回調 HTTP(S) 要求標頭增加的鑒權參數如下:
欄位 | 描述 |
ALI-LIVE-TIMESTAMP | 回調請求發起的UNIX時間戳記。單位:秒。 |
ALI-LIVE-SIGNATURE | 簽名字串,為 32 位 MD5 值,計算方法參見下文。 |
簽名演算法
ALI-LIVE-SIGNATURE 的計算依賴以下欄位:
欄位 | 樣本 | 描述 |
回調網域名稱 | learn.aliyundoc.com | 根據回調類型不同,回調網域名稱有所差異:
|
ALI-LIVE-TIMESTAMP | 1519375990 | 回調請求發起的UNIX時間戳記。單位:秒。 |
NotifyAuthKey | yourkey | 通過控制台或API預設的鑒權Key。 |
計算方法
將上述三個欄位以豎線(|)分隔進行拼接後計算 MD5 值,公式如下:
MD5Content = 回調網域名稱|ALI-LIVE-TIMESTAMP|NotifyAuthKey
ALI-LIVE-SIGNATURE = md5sum(MD5Content)計算樣本
ALI-LIVE-SIGNATURE = md5sum(learn.aliyundoc.com|1519375990|yourkey)回調訊息接收服務端校正規則
接收服務端收到回調請求後,應執行以下校正:
簽名校正:根據回調類型確定對應的網域名稱(推流回調和雙流災備回調使用推流網域名稱,錄製回調和截圖回調使用回調地址的網域名稱),按上述簽名演算法計算 MD5 值。如果計算結果與攜帶的
ALI-LIVE-SIGNATURE欄位不一致,則請求非法。時間戳記校正:將目前時間與回調請求所帶的
ALI-LIVE-TIMESTAMP欄位值相減,如果超過服務端設定的時間視窗(如 5 分鐘),則認為該請求無效。由於時間設定等問題,時間差值可能會有誤差,服務端可自行決定是否進行該校正。
注意事項
回調鑒權由使用者自主決定是否開啟(建議開啟)。設定鑒權Key(NotifyAuthKey)後,直播服務會在回調請求的 HTTP(S) 頭部自動添加鑒權欄位,不影響原有回調功能。是否對回調請求進行簽名校正由接收服務端決定。未設定 NotifyAuthKey 時,回調請求不會攜帶鑒權欄位,使用者不會受到任何影響。
NotifyAuthKey 更新後,僅對更新後的新推流會話生效。進行中的推流會話仍使用舊的 NotifyAuthKey,需停止並重新開始推流才能使用新 Key。