當回調方式為HTTP請求時,您可以通過在HTTP頭部增加鑒權參數,供回調訊息接收服務端進行簽名認證,防止非法或無效請求。通過閱讀本文,您可以瞭解鑒權參數、簽名計算、接收端校正規則和切換鑒權密鑰的詳情。
使用說明
您可以自行決定是否開啟回調鑒權(建議開啟),開啟或關閉回調鑒權不會影響原有功能。如果開啟回調鑒權,回調時會攜帶所有鑒權相關內容供訊息接收服務端進行鑒權使用,這樣可以有效過濾非法請求,增強系統安全性。
鑒權參數
在進行HTTP請求回調時,HTTP頭部增加以下鑒權參數:
參數 | 描述 |
X-ICE-TIMESTAMP | HTTP請求發起時間,用UNIX時間戳記表示。 |
X-ICE-SIGNATURE | 簽名字串,用32位MD5值表示,演算法請參見下文。 |
計算簽名字串
計算X-ICE-SIGNATURE時,需要依賴以下欄位:
欄位 | 描述 | 樣本 |
回調URL | HTTP請求回調地址。 | https://www.example.com/your/callback |
X-ICE-TIMESTAMP | HTTP請求發起時間,使用UNIX時間戳記表示。 | 1519375990 |
鑒權密鑰 | 使用者預設的簽名Key,最長32位,必須同時包含大小寫字母和數字。 | Test123 |
將上述三個欄位以豎線(|)拼接,再計算MD5值:
MD5Content = 回調URL|X-ICE-TIMESTAMP|鑒權密鑰
X-ICE-SIGNATURE = md5sum(MD5Content)
X-ICE-SIGNATURE計算樣本如下:
X-ICE-SIGNATURE = md5sum(https://www.example.com/your/callback|1519375990|Test123) = c72b60894140fa98920f1279219b****
回調訊息接收端校正規則
回調訊息接收端將設定的回調URL、X-ICE-TIMESTAMP和鑒權密鑰字串進行拼接,然後進行MD5值計算並得到加密串,再將加密串與X-ICE-SIGNATURE欄位進行對比,如果不一致,則表示非法請求。
回調訊息接收端擷取目前時間,與回調請求所帶的X-ICE-TIMESTAMP欄位時間相減,如果值超過服務端所設定的指定時間(例如5分鐘,由服務端自訂),則表示該請求無效。
切換鑒權密鑰
如果您需要切換鑒權密鑰,為了保證回調功能不受影響,訊息接收服務端需要在一段時間內相容新舊鑒權密鑰進行平滑切換,此操作由服務方完成。建議操作順序如下:
定義新鑒權密鑰。
升級回調訊息接收服務端,從而相容新舊鑒權密鑰的鑒權。
在控制台回調鑒權地區更新鑒權密鑰。
觀察一段時間後,回調訊息接收服務端刪除對原來舊鑒權密鑰的相容,完成切換。