日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

簽名機制

為保證API的安全調用,在調用API時阿里云會對每個API請求通過簽名(Signature)進行身份驗證。無論使用HTTP還是HTTPS協議提交請求,都需要在請求中包含簽名信息。

概述

RESTful API需要按照如下格式在API請求頭(RequestHeader)中添加Authorization參數進行簽名。

Authorization:acs:AccessKeyId:Signature
  • acs:Alibaba Cloud Service的縮寫,固定標識不可修改。

  • AccessKeyId:調用者調用API所用的密鑰ID。

  • Signature:使用AccessKey Secret對請求進行對稱加密的簽名。

計算簽名

簽名算法遵循RFC 2104 HMAC-SHA1規范,使用AccessSecret對編碼、排序后的整個請求串計算HMAC值作為簽名。簽名的元素是請求自身的一些參數,由于每個API請求內容不同,所以簽名的結果也不盡相同。

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

完成以下操作,計算簽名:

  1. 構建待簽名字符串。

    待簽名字符串(StringToSign)是API請求拼裝的字符串,用于計算簽名,包括:

    • HTTP協議Header

    • 阿里云協議Header(CanonicalizedHeaders)

    • 規范資源(CanonicalizedResource)

    • Body

    待簽名字符串必須按照以下順序構造。

    StringToSign = 
           //http協議Header
            HTTP-Verb + "\n" +
            Accept + "\n" +
            Content-MD5 + "\n" +//Body的MD5值放在此處
            Content-Type + "\n" +
            Date + "\n" +
           //阿里云協議header(CanonicalizedHeaders)
            CanonicalizedHeaders +
           //簽名中如何包含CanonicalizedResource(規范資源)
            CanonicalizedResource

    示例:原始請求

    POST /stacks?name=test_alert&status=COMPLETE HTTP/1.1
    Host: ***.aliyuncs.com
    Accept: application/json
    Content-MD5: ChDfdfwC+Tn874znq7Dw7Q==
    Content-Type: application/x-www-form-urlencoded;charset=utf-8
    Date: Thu, 22 Feb 2018 07:46:12 GMT 
    x-acs-signature-nonce: 550e8400-e29b-41d4-a716-446655440000
    x-acs-signature-method: HMAC-SHA1
    x-acs-signature-version: 1.0
    x-acs-version: 2016-01-02

    示例:規范請求

    POST
    application/json
    ChDfdfwC+Tn874znq7Dw7Q==
    application/x-www-form-urlencoded;charset=utf-8
    Thu, 22 Feb 2018 07:46:12 GMT
    x-acs-signature-nonce: 550e8400-e29b-41d4-a716-446655440000
    x-acs-signature-method:HMAC-SHA1
    x-acs-signature-version:1.0
    x-acs-version:2016-01-02
    /stacks?name=test_alert&status=COMPLETE
  2. 添加簽名。

    將計算好的簽名按照如下格式添加到RequestHeader中。

    Authorization: acs AccessKeyId:Signature

HTTP協議Header

計算簽名必須包含以下參數,并按字典順序排列;若值不存在則以\n補齊。

  • Accept :客戶端需要的返回值類型,取值:application/json | application/xml

  • Content-MD5:HTTP協議消息體的128-bit MD5散列值轉換成BASE64編碼的結果。

  • Content-Type:RFC 2616中定義的HTTP請求內容類型。

  • Date:HTTP 1.1協議中規定的GMT時間,例如:Wed, 05 Sep. 2012 23:00:00 GMT。

    說明

    不包含key。

示例:原始Header

Accept: application/json
Content-MD5: ChDfdfwC+Tn874znq7Dw7Q==
Content-Type: application/x-www-form-urlencoded;charset=utf-8
Date: Thu, 22 Feb 2018 07:46:12 GMT

示例:規范Header

application/json
ChDfdfwC+Tn874znq7Dw7Q==
application/x-www-form-urlencoded;charset=utf-8
Thu, 22 Feb 2018 07:46:12 GMT

阿里云協議Header (CanonicalizedHeaders)

阿里云規范頭,非標準HTTP頭部信息,是請求中出現的以x-acs-為前綴的參數。請求中必須包含以下參數:

  • x-acs-signature-nonce:唯一隨機數,用于防止網絡重放攻擊。在不同請求間要使用不同的隨機數值。

  • x-acs-signature-version:簽名版本,取值:1.0

  • x-acs-version:API版本號。

完成以下操作,構造阿里云規范頭:

  1. 將所有以x-acs-為前綴的HTTP請求頭的名字轉換成小寫字母。如將X-acs-OSS-Meta-Name: TaoBao轉換成x-acs-oss-meta-name: TaoBao

  2. 將上一步得到的所有HTTP阿里云規范頭按照字典序進行升序排列。

  3. 刪除請求頭和內容之間分隔符兩端出現的任何空格。如將x-acs-oss-meta-name: TaoBao,Alipay轉換成x-acs-oss-meta-name:TaoBao,Alipay

  4. 將所有的頭和內容用“\n”分隔符分隔拼成最后的CanonicalizedHeaders。

示例:原始Header

x-acs-signature-nonce: 550e8400-e29b-41d4-a716-446655440000
x-acs-signature-method: HMAC-SHA1
x-acs-signature-version: 1.0
x-acs-version: 2016-01-02GMT

示例:規范Header

x-acs-signature-nonce:550e8400-e29b-41d4-a716-446655440000
x-acs-signature-method:HMAC-SHA1
x-acs-signature-version:1.0
x-acs-version:2016-01-02

規范資源(CanonicalizedResource)

CanonicalizedResource表示想要訪問資源的規范描述,需要將子資源和query參數一同按照字典序,從小到大排列并以“&”為分隔符生成子資源字符串(?后的所有參數)。

示例:原始請求

/stacks?status=COMPLETE&name=test_alert

示例:規范請求

/stacks?name=test_alert&status=COMPLETE

Body

將請求的body用MD5算法加密,再進行base64編碼,將結果添加到Content-MD5中。