直播截圖服務支援在HTTP(含HTTPS)回調時增加特定簽名頭,供回調訊息接收服務端進行簽名認證,以防止非法或無效請求。本文為您介紹HTTP回調鑒權的參數、規則和注意事項。
鑒權參數
在回調HTTP頭部增加的具體鑒權參數如下。
欄位 | 描述 |
ALI-LIVE-TIMESTAMP | 表示回調請求發起時間,使用UNIX時間戳記表示(單位:秒)。 |
ALI-LIVE-SIGNATURE | 簽名字串,為32位MD5值,詳細說明參見下表簽名演算法。 |
簽名演算法
ALI-LIVE-SIGNATURE的計算依賴如下欄位。
欄位 | 樣本 | 描述 |
回調網域名稱 | learn.aliyundoc.com | 指回調URL中的Host。如回調URL為https://learn.aliyundoc.com/your/callback ,則回調網域名稱為learn.aliyundoc.com 。 |
ALI-LIVE-TIMESTAMP | 1519375990 | 表示回調請求發起時間,使用UNIX時間戳記表示(單位:秒)。 |
NotifyAuthKey | yourkey | 使用者預設的簽名Key。 說明 可調用UpdateLiveSnapshotNotifyConfig介面更新NotifyAuthKey。 |
欄位拼接
將上述三個欄位進行拼接,欄位中間以豎線(|)分割後計算MD5值,如下所示。
MD5Content = 回調網域名稱|ALI-LIVE-TIMESTAMP|NotifyAuthKey
ALI-LIVE-SIGNATURE = md5sum(MD5Content)
欄位計算
ALI-LIVE-SIGNATURE欄位計算方法樣本如下。
ALI-LIVE-SIGNATURE = md5sum(learn.aliyundoc.com|1519375990|yourkey)
回調訊息接收服務端校正規則
- 回調訊息接收端將回調所設定的回調網域名稱、ALI-LIVE-TIMESTAMP取值、NotifyAuthKey字串拼接後,進行MD5值計算,得到加密串,再將加密串與ALL-LIVE-SIGNATURE欄位進行對比,如果不一致,則請求非法。
- 回調訊息接收端擷取目前時間,與回調請求所帶的ALI-LIVE-TIMESTAMP欄位時間相減,如果超過服務端所設定的指定時間(如5分鐘,由服務端自行定義),則認為該請求無效。
說明 由於時間設定等問題,時間差值可能會有誤差,服務端可自行決定是否進行該校正。
注意事項
- 回調鑒權和是否開啟由使用者決定(建議開啟)。一旦設定了NotifyAuthKey,則回調時會攜帶所有鑒權相關內容,供回調訊息接收服務端進行鑒權使用,即設定NotifyAuthKey不會影響原有功能,涉及是否校正需由使用者決定。
- 未設定NotifyAuthKey使用者不會受任何影響。
- NotifyAuthKey更新後需要重新推流才會生效,正在推流中的回調還是使用舊的NotifyAuthKey。