AK/SK签名认证算法详解 AK/SK签名认证流程 构造规范请求 创建待签字符串 计算签名 添加签名信息到请求头
sign 创建的待签字符串 假设Secret Access Key为MFyf***VmHc,则计算得到的signature为: f12f84a5ecf9eff3206499c4a55b13d1adad745dc8624a2e31f15c6b381d5b80 父主题: AK/SK签名认证算法详解
签名SDK与demo章节提供了常用语言的签名SDK以及demo,与本章节提供的算法逻辑一致,您可以直接使用,省去自签名步骤。 父主题: AK/SK签名认证算法详解
如果本手册的多语言签名示例没有涵盖您使用的编程语言,请根据签名流程与算法,自主实现请求的签名。 API调用的另一种认证方式为Token认证,Token认证的说明与示例包含在各云服务的API参考手册中的“认证鉴权”章节。
"error_code": "APIGW.0301", "request_id": "******" } 可能原因 签名认证算法使用有问题,客户端计算的签名结果与API网关计算的签名结果不同。 解决方法 下载js版本,查看可视化签名SDK,获取签名字符串。
AK/SK签名认证算法详解
sdk-request:签名算法的调用示例,请根据实际情况修改参数后使用。 请求签名与API调用 在工程中引入sdk。
执行main文件,查看结果。
执行main文件,查看结果。
伪代码如下: Authorization header创建伪码: Authorization: algorithm Access=Access key, SignedHeaders=SignedHeaders, Signature=signature 需要注意的是算法与Access
X-Domain-Id 账号ID,用途: Token认证方式下获取Token。 AK/SK认证方式下,全局服务的接口调用,需在请求消息头中配置X-Domain-Id。(全局服务:服务部署时不区分物理区域。如IAM、OBS、CDN等。) 获取方式请参考获取账号名和账号ID。
Algorithm 签名算法。对于SHA 256,算法为SDK-HMAC-SHA256。 RequestDateTime 请求时间戳。与请求消息头X-Sdk-Date的值相同,格式为YYYYMMDDTHHMMSSZ。
请求消息头参数是否可以不参与签名 如果您按照AK/SK签名认证算法详解自行完成API请求签名,请注意X-Sdk-Date必须参与签名,其他请求消息头参数可选。
limit=1") # r.body = "{\"a\":1}" 添加需要签名的请求消息头,或者其他用途的头域,如多项目场景中添加X-Project-Id,或者全局服务场景中添加X-Domain-Id。如果添加多个请求消息头,使用英文逗号分隔。
APIGW.0601 Internal server error. 500 内部错误 联系技术支持 APIGW.0602 Bad request. 400 非法请求 检查请求是否合法 APIGW.0605 Domain name resolution failed. 500 域名解析失败
service.region.example.com3/v1/{project_id}/vpcs"); request.addQueryStringParam("name", "value"); request.addHeader("Content-Type", "text/plain
a=1", ioutil.NopCloser(bytes.NewBuffer([]byte("")))) 添加需要签名的其他头域,或者其他用途的头域,如多项目场景中添加X-Project-Id,或者全局服务场景中添加X-Domain-Id。
X-Project-Id,或者全局服务场景中添加X-Domain-Id。
200 OK [main] INFO com.huawei.apig.sdk.demo.HttpClientDemo - Processing Header with name: Date and value: Fri, 26 Aug 2022 08:58:51 GMT [main
$req->body = ''; 添加需要签名的其他头域,或者其他用途的头域,如多项目场景中添加X-Project-Id,或者全局服务场景中添加X-Domain-Id。
您即将访问非华为云网站,请注意账号财产安全