签名密钥使用

最近更新时间:2020-05-27 16:02:16

域名

使用api定义中的后端请求地址

公共Header参数

名称 描述 是否参与计算签名
x-kscapigw-proxy-signature-ak ak 用户在控制台建立的签名密钥Key
x-kscapigw-proxy-signature-nonce 请求调用者生成的uuid,为了避免重放
x-kscapigw-proxy-signature-timestamp 时间,UTC格式,例如:2020-03-13T17:18:36Z
x-kscapigw-proxy-signature-headers 参与计算签名的header,多个header使用英文逗号分隔
x-kscapigw-proxy-signature 签名

签名算法

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

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

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

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

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

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

签名样例:
88b203541ce8c757d7d554af2a25de036d3d9a636d91fb44d01bf82dc67a6941

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

传递签名

将计算的签名结果放到请求的header中,Key为:x-kscapigw-proxy-signature。

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

免费注册