全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 智能硬件
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 更多
内容安全

签名机制

更新时间:2018-06-25 19:42:22

签名流程

步骤1. 序列化请求头

按照以下方式,将所有以x-acs-开头的HTTP头拼接成字符串:

  1. 抽取所有以x-acs-开头的HTTP头。

  2. 对抽取出来的头按字典顺序排序。

  3. 对每个HTTP头,按"HTTP头名称" + ":" + "HTTP头值" + "\n"拼接。

步骤2. 序列化URI和query参数

按照uri + "?clientInfo=" + "ClientInfo的JSON字符串"方式拼接URI和clientInfo参数。

说明:这里不需要URL编码。但在HTTP请求中,是应该URL编码的。

步骤3. 构建完整的待签名字符串

按照以下方式,构建完整的待签名字符串:

"POST\napplication/json\n" + "HTTP头Content-MD5的值" + "\n" + "application/json" + "\n" + "HTTP头Date的值" + "\n" + "序列化请求头" + "序列化uri和query参数"

步骤4. 生成签名

对步骤3中得到的字符串,使用AccessKeyId进行HMAC-SHA1算法加密,并进行base64编码。然后将结果放到HTTP头Authorization中的signature

"acs" + " " + AccessKeyId + ":" + signature

说明acsAccessKeyId之间有空格。HMAC-SHA1算法中的secret key是和AccessKeyId对应的secret。

示例

以下是一个完整的调用图片同步检测任务的待签名字符串示例:

  1. POST
  2. application/json
  3. C+5Y0crpO4sYgC2DNjycug==
  4. application/json
  5. Tue, 14 Mar 2017 06:29:50 GMT
  6. x-acs-signature-method:HMAC-SHA1
  7. x-acs-signature-nonce:339497c2-d91f-4c17-a0a3-1192ee9e2202
  8. x-acs-signature-version:1.0
  9. x-acs-version:2018-05-09
  10. /green/image/scan?clientInfo={"ip":"127.0.0.2","userId":"120234234","userNick":"Mike","userType":"others"}
本文导读目录