最近更新时间:2024-02-26 15:54:15
使用系统分配的域名调用api,域名形如:******.kscloudapi.com
名称 | 描述 | 是否参与计算签名 |
---|---|---|
x-kscapigw-apigwak | ak 用户在iam控制台建立的AccessKey 例如AKLTgUnjis************* | 是 |
x-kscapigw-nonce | 请求调用者生成的uuid,为了避免重放 | 是 |
x-kscapigw-timestamp | 时间,UTC格式,例如: | 是 |
x-kscapigw-signatureversion | 签名版本号,固定值: | 是 |
x-kscapigw-signaturemethod | 签名算法,固定值: | 是 |
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为AccessKeyID对应的密钥,使用的哈希算法是:HMAC-SHA256。
将计算的签名结果放到请求的header中,Key为:X-KSCAPIGW-SIGNATURE。
纯净模式