当前位置:主页 > 查看内容

用户签名验证_对象存储服务 OBS_API参考_如何调用API_认证鉴权

发布时间:2021-09-10 00:00| 位朋友查看

简介:OBS通过AK/SK对请求进行签名,在向OBS发送请求时,客户端发送的每个消息头需要包含由SK、请求时间、请求类型等信息生成的签名信息。 AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名……

OBS通过AK/SK对请求进行签名,在向OBS发送请求时,客户端发送的每个消息头需要包含由SK、请求时间、请求类型等信息生成的签名信息。

  • AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。格式例如:HCY8BGCN1YM5ZWYOK1MH
  • SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。格式例如:9zYwf1uabSQY0JTnFqbUqG7vcfqYBaTdXde2GUcq

用户可以在IAM服务中获取AK和SK,获取的方法请参见获取访问密钥(AK/SK)

OBS根据应用场景,提供了Header中携带签名URL中携带签名基于浏览器上传的表单中携带签名3种签名计算方式。

OBS提供的SDK已集成了签名计算,建议您使用SDK进行开发。

以Header中携带签名为例,用户签名验证流程如表1所示。Header中携带签名方法的具体参数说明及代码示例,请参见Header中携带签名

表1 OBS签名计算和验证步骤

步骤

示例

签名计算

1. 构造HTTP消息

PUT /object HTTP/1.1

Host: bucket.obs.cn-north-4.myhuaweicloud.com

Date: Tue, 04 Jun 2019 06:54:59 GMT

Content-Type: text/plain

Content-Length: 5913

2. 按照签名规则计算StringToSign

StringToSign = HTTP-Verb + "\n" + Content-MD5 + "\n" + Content-Type + "\n" + Date + "\n" + CanonicalizedHeaders + CanonicalizedResource

3. 准备AK和SK

AK: ******

SK: ******

4. 计算签名Signature

Signature = Base64( HMAC-SHA1( SecretAccessKeyID, UTF-8-Encoding-Of( StringToSign ) ) )

5. 添加签名头域发送到OBS服务

PUT /object HTTP/1.1

Host: bucket.obs.cn-north-4.myhuaweicloud.com

Date: Tue, 04 Jun 2019 06:54:59 GMT

Content-Type: text/plain

Content-Length: 5913

Authorization: OBS AccessKeyID:Signature

签名验证

6. 接收HTTP消息

PUT /object HTTP/1.1

Host: bucket.obs.cn-north-4.myhuaweicloud.com

Date: Tue, 04 Jun 2019 06:54:59 GMT

Content-Type: text/plain

Content-Length: 5913

Authorization: OBS AccessKeyID:Signature

7. 根据请求中的AK获取SK

从头域Authorization中取出AK,去IAM取回用户的SK

8. 按照签名规则计算StringToSign

StringToSign = HTTP-Verb + "\n" + Content-MD5 + "\n" + Content-Type + "\n" + Date + "\n" + CanonicalizedHeaders + CanonicalizedResource

9. 计算签名Signature

Signature = Base64( HMAC-SHA1( SecretAccessKeyID, UTF-8-Encoding-Of( StringToSign ) ) )

10. 验证签名

验证头域Authorization中的Signature与服务端计算的Signature是否相等

相等:签名验证通过

不相等:签名验证失败


本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:存储容量单位包抵扣规则 - 云服务器 ECS 下一篇:没有了

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐