跳到主要内容

签名说明

由于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

签名的生成方法见签名生成,问题排查见签名常见错误。