簽名說明
由於AZ需要爲第三方平臺提供一些開放性的接口,所以需要接口的數據安全問題,比如數據是否被篡改,數據是否已過時,數據是否可以重複提交,接口在某個時間內訪問頻率等問題。其中數據是否被篡改是最重要的。
1、線下分配appkey和secretkey,針對不同的調用,提供不同的appkey和secretkey
2、加入timestamp(時間戳),其值應當是請求發送時刻的unix時間戳(毫秒),數據的有郊時間根據此值來計算。
3、加入signature(數據簽名),所有數據的簽名信息。
4、加入recvwindow(可選請求頭 validate-recvwindow,單位為毫秒):預設為 5000;大於 60000 的值按 60000 處理。
服務器收到請求時,會比較 validate-timestamp 與服務器時間。如兩者差值(無論正負)大於 recvwindow,請求會以 HTTP 403 被拒絕。
你的程序到 AZ 服務器的網絡時延會有波動,因此該窗口可以自行設定。請先使用預設值 5000,並保持系統時鐘同步(NTP);只有在請求因網絡時延被拒絕時才調大該值。
5、加入algorithms(可選請求頭 validate-algorithms)。簽名基於 HMAC,預設並推薦使用 HmacSHA256。支援:HmacSHA256、HmacSHA1、HmacSHA224、HmacSHA384、HmacSHA512、HmacMD5。