APP认证调用API

最近更新时间:2020-07-17 15:48:49

域名

使用系统分配的域名调用api,域名形如:**.kscloudapi.com

  • 如果从市场购买的api,请从api文档获取域名信息
  • 如果开放者授权调用api,请联系api开放者获取域名信息

公共Header参数

名称 描述 是否参与计算签名
x-kscapigw-apigwak ak 用户在控制台建立的应用Appkey
x-kscapigw-nonce 请求调用者生成的uuid,为了避免重放
x-kscapigw-timestamp 时间,UTC格式,例如:2020-03-13T17:18:36Z
x-kscapigw-signatureversion 签名版本号,固定值:1.0
x-kscapigw-signaturemethod 签名算法,固定值:HMAC-SHA256
x-kscapigw-signed-headers 参与计算签名的header,多个header使用英文逗号分隔
x-kscapigw-signature 签名

签名算法

1)根据请求参数(公共header参数和api参数,不包含公共header参数 x-kscapigw-signature)构造规范化请求字符串:CanonicalizedQueryString api参数包含:所有query,path,body,header(x-kscapigw-signed-headers 标识参与计算签名的header)参数

第一步:请求参数排序。排序规则以参数名按照字典排序

第二步:请求参数编码。使用UTF-8字符集对每个请求参数的名称和参数取值进行URLEncode,一般在URLEncode后需对三种字符替换:加号(+)替换成 %20、星号(*)替换成 %2A、 %7E 替换回波浪号(~)

第三步:每对URLEncode后的参数名称和参数值,用=进行连接。每对之间使用&进行连接。得到规范化请求字符串CanonicalizedQueryString。

2)计算签名。 sign = hash_hmac('sha256', CanonicalizedQueryString, sk)

sign值为签名算法返回的16进制格式小写字符串

签名样例:
88b203541ce8c757d7d554af2a25de036d3d9a636d91fb44d01bf82dc67a6941

计算签名时使用的sk为Appkey对应的秘钥(Secret),使用的哈希算法是:HMAC-SHA256。

传递签名

将计算的签名结果放到请求的header中,Key为:X-KSCAPIGW-SIGNATURE。

金山云,开启您的云计算之旅

免费注册