跳到主要内容

签名说明

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

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