使用场景
- 服务访问控制:AK/SK 用于访问服务提供商的 API,执行特定操作,如创建、删除资源等。
- 应用程序身份验证:在开发应用程序时,开发人员可以使用 AK/SK 将其应用程序与服务集成,以便应用程序可以以其所分配的权限执行各种操作。
- 自动化任务:在自动化任务中,AK/SK 可以用于脚本或工具以编程方式执行特定的操作,例如备份、部署、监视等。
- 安全控制:通过控制 AK/SK 的分发和轮换,可以增强安全性,减少潜在的安全风险。
拼接请求字符串
path 参数类:将请求参数格式化成“参数名称=参数值”的形式。将格式化后的各个参数用"&"拼接在一起,最终生成的请求字符串,例如:index=0&count=15。
body 参数类:将请求参数字符串直接进行拼接,例如:{"roleType":0,"username":"test"}
拼接签名原文字符串
请求方法:支持 POST、GET、PUT 等方式。
请求路径:访问地址的路径,例如:https:// 10.2.239.184:9600/oauth/tenants/quota路径地址为10.2.239.184:9600/oauth/tenants/quota
最终请求字符串:请求方法 + 请求路径 + ? + 请求字符串。
示例:
GET10.2.239.184:9600/oauth/tenants/quota?index=0&count=15
POST10.2.239.184:9600/oauths/users? {"roleType":0,"username":"test"}
生成签名串
首先使用 HMAC-SHA256 算法对上一步中获得的“签名原文字符串”进行签名,然后将生成的签名串使用 UTF-8 进行编码,即可获得最终的签名串。以python语言为例,具体代码如下:
AK/SK 请求认证
使用接口测试工具,这里以postman为例:
在请求头 Header 中添加 host 和 signature 参数,其中 signature 参数中 AccessKey 参数为密钥下载的 Access Key,RequestSign 参数为上一步骤中获取的加密签名。Host 参数值默认为空即可;接口请求参数与生成加密签名时的请求参数保持相同。