签名说明
由于AZ需要为第三方平台提供一些开放性的接口,所以需要接口的数据安全问题,比如数据是否被篡改,数据是否已过时,数据是否可以重复提交,接口在某个时间内访问频率等问题。其中数据是否被篡改是最重要的。
-
先通过用户中心申请appkey和secretkey,针对不同的调用,提供不同的appkey和secretkey
-
加入timestamp(时间戳),其值应当是请求发送时刻的unix时间戳(毫秒),数据的有郊时间根据此值来计算。
-
加入signature(数据签名),所有数据的签名信息。
-
加入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