簽名說明
由於AZ需要爲第三方平臺提供一些開放性的接口,所以需要接口的數據安全問題,比如數據是否被篡改,數據是否已過時,數據是否可以重複提交,接口在某個時間內訪問頻率等問題。其中數據是否被篡改是最重要的。
1、先通過用戶中心申請appkey和secretkey,針對不同的調用,提供不同的appkey和secretkey
2、加入timestamp(時間戳),其值應當是請求發送時刻的unix時間戳(毫秒),數據的有郊時間根據此值來計算。
3、加入signature(數據簽名),所有數據的簽名信息。
4、加入recvwindow(請求頭 validate-recvwindow,必填):請求的有效時間窗口,取值 5000 至 60000 毫秒。
服務器收到請求時,會比較 validate-timestamp 與服務器時間。如兩者差值(無論正負)不小於 validate-recvwindow,請求會以 AUTH_105 被拒絕。
你的程序到 AZ 服務器的網絡時延會有波動,因此該窗口可以自行設定。請先使用 5000,並保持系統時鐘同步(NTP);只有在因網絡時延出現 AUTH_105 時才調大該值。
5、加入algorithms (簽名方法/算法),用戶計算簽名是基於哈希的協議,推薦使用HmacSHA256。具體支持那些協議,請參見下面表格中所列出。
HmacMD5、HmacSHA1、HmacSHA224、HmacSHA256(推薦)、HmacSHA384、HmacSHA512