详情页标题前

阿里云容器服务ACK签名机制-云淘科技

详情页1

为保证API的安全调用,在调用API时阿里云会对每个API请求通过签名(Signature)进行身份验证。无论使用HTTP还是HTTPS协议提交请求,都需要在请求中包含签名信息。本文指导您如何进行签名处理。

对于每一次HTTP或者HTTPS协议请求,阿里云会根据访问中的签名信息验证访问请求者身份。您在访问时签名信息时,请按照以下方法对请求进行签名处理:

  • 步骤一:构造规范化请求头
  • 步骤二:构造规范化资源
  • 步骤三:构造待签名字符串
  • 步骤四:计算签名
  • 步骤五:将签名添加到请求中

步骤一:构造规范化请求头

阿里云规范化请求头(CanonicalizedHeaders)是非标准HTTP头部信息。是指请求中出现的以x-acs-为前缀的参数信息,构造方法如下:

  • 将所有以x-acs-为前缀的HTTP请求头的名称转换成小写字母。如X-acs-Meta-Name: TaoBao转换成x-acs-meta-name: TaoBao。阿里云规范请求头的名称大小写不敏感,建议全小写。
  • 如果一个公共请求头的值过长,则需要处理其中的
    \r\f分隔符,将其替换成英文半角的空格。
  • 将上一步得到的所有HTTP阿里云规范头按照字典顺序进行升序排列。
  • 删除请求头的名称和值之间的分隔符两端出现的任何空格。例如x-acs-oss-meta-name : TaoBao,Alipay转换成x-acs-oss-meta-name:TaoBao,Alipay
  • 在每一个请求头后添加一个
    分隔符(包括最后一个请求头),然后将所有请求头拼接在一起即获得CanonicalizedHeaders。

步骤二:构造规范化资源

规范化资源(CanonicalizedResource) 表示您想要访问资源的规范描述,具体构造方式如下:

  1. 将请求的查询字符串(queryString)中的参数按照参数名称的字典序重新排序,并以&分隔符连接生成已排序查询字符串。

    如果本次请求没有携带查询字符串,则跳过此步骤。

  2. 将请求资源路径(指URL中host与查询字符串之间的部分,包含host之后的/但不包含查询字符串前的?)与已排序查询字符串以?拼接,得到规范化资源。当查询字符串不存在时,直接用请求资源路径作为规范化资源。

示例

原始请求URL:

http://demo-product.aliyuncs.com/instances?status=ONLINE&group=test_group

规范化资源:

/instances?group=test_group&status=ONLINE

步骤三:构造待签名字符串

按照以下伪代码构造待签名字符串(StringToSign):

StringToSign = 
    HTTP-Verb + "
" +
    Accept + "
" +
    Content-MD5 + "
" +
    Content-Type + "
" +
    Date + "
" +
    CanonicalizedHeaders +
    CanonicalizedResource
参数 描述
HTTP-Verb 大写的HTTP方法名,例如POST、GET。
Accept Accept请求头的值,当请求头不存在时,使用空字符串代替。
Content-MD5 Content-MD5请求头的值,当请求头不存在时,使用空字符串代替。
Content-Type Content-Type请求头的值,当请求头不存在时,使用空字符串代替。
Date Date请求头的值。
CanonicalizedHeaders 步骤一:构造规范化请求头中获得的规范化请求头。
CanonicalizedResource 步骤二:构造规范化资源中获得的规范化资源。

步骤四:计算签名

根据RFC2104的定义,按照HMAC-SHA1算法对上一步生成的待签名字符串进行签名计算,并以Base64编码规则将计算结果编码成字符串,即得到最终的签名值(Signature)。

Signature = Base64( HMAC-SHA1( SigningKey, StringToSign ) )

重要 计算签名时使用的SigningKey值就是您的AccessKey Secret。更多信息,请参见创建AccessKey。

步骤五:将签名添加到请求中

计算出签名结果Signature后,按照以下规则拼接字符串,并将结果作为Authorization请求头的值。

Authorization = "acs " + AccessKeyId + ":" + Signature

相关文档

  • 公共请求和返回结果

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/171531.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云人工智能平台PAIAPI概览-云淘科技

    本产品(机器学习PAI-云原生AI基础平台/2020-12-03)的OpenAPI采用ROA签名风格,签名细节参见签名机制说明。我们已经为开发者封装了常见编程语言的SDK,开发者可通过下载SDK直接调用本产品OpenAPI而无需关心技术细节。如果现有SDK不能满足使用需求,可通过签名机制进行自签名对接。由于自签名细节非常复杂,需花费 5个工作日左右。因此建议…

    阿里云人工智能平台PAI 2023年12月10日
  • 阿里云容器服务ACK存储基础知识-云淘科技

    阿里云容器服务ACK使用Kubernetes编排系统作为集群、应用、存储、网络等模块的管理平台。本文为您介绍ACK容器存储相关的基础知识,以便在使用容器服务的存储能力时,了解相应模块的基础知识和使用原则。 数据卷(Volume) 因为容器中的文件在磁盘上是临时存放的,所以Kubernetes定义了数据卷(Volume)以解决容器中的文件因容器重启而丢失的问题…

    阿里云容器服务 2023年12月10日
  • 阿里云容器服务ACKKubernetes版本概览及机制-云淘科技

    容器服务ACK基于原生的Kubernetes提供以容器为核心的解决方案。随着Kubernetes版本不断升级,容器服务ACK会定期发布支持的Kubernetes版本并逐步停止对过期版本的技术支持。本文为您介绍容器服务 ACK的Kubernetes版本支持机制,包括版本周期、支持策略、过期风险等。 版本发布 ACK集群和ACK Serverless集群支持的K…

    阿里云容器服务 2023年12月10日
  • 阿里云人工智能平台PAI创建签名和模板-云淘科技

    创建短信发送计划之前,您需要创建签名,用来审核您是否具有发送短信的资质。签名审核通过后,您可以通过创建模板来编辑短信发送的内容。本文为您介绍如何创建签名和模板。 注意事项 发送短信会按照短信内容计费,请您了解以下计费规则,在编写模板内容时对计费条数做好预估。 短信内容包含签名、模板内容和变量内容。 说明 变量内容为定制化短信内容,按实际定制化短信内容字数计算…

    2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云对象存储OSSAndroid授权访问-云淘科技

    Android SDK提供了STS鉴权模式、自签名模式以及签名URL的方式,用于保障移动终端的安全性。 背景信息 无论是STS鉴权模式还是自签名模式,您实现的回调函数都需要保证调用时Token、Signature的返回结果。如果您需要实现向业务Server获取Token、Signature的网络请求,建议调用网络库的同步接口。回调都是在SDK发起具体请求时,…

    阿里云对象存储 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。