本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
計算 Amazon SWF 的 HMAC-SHA 簽章
每個向 Amazon SWF 發出的請求都必須進行身分驗證。所以此AWSSDK 會自動簽署您的請求並管理您的字符型身份驗證。但若您想要撰寫自己的 HTTP POST
請求,您需要為 HTTP POST Header
內容建立 x-amzn-authorization
值,做為請求身份驗證的一部分。
如需格式化這些標頭的詳細資訊,請參閱「HTTP 標頭內容」。對於AWS SDK for Java的實作AWS版本 3 簽名,請參閲AWSSigner.java
建立請求簽章
在您建立 HMAC-SHA 請求簽章之前,您必須取得您的 AWS 登入資料 (存取金鑰 ID 和私密金鑰)。
重要
您可以使用 SHA1 或 SHA256 簽署您的請求。但整個簽署過程中請務必使用同一個方法。您選擇的方法必須符合 HTTP 標頭中 Algorithm
名稱的值。
建立請求簽章
-
建立 HTTP 請求標頭的正式格式。HTTP 標頭的正式格式包含以下內容:
-
host
-
任何以
x-amz-
開頭的標頭元素
如需這些內含標頭的詳細資訊,請參閱「HTTP 標頭內容」。
-
將每一個標頭名稱值對的標頭名稱 (不是標頭值) 轉換成小寫。
-
建立逗號分隔標頭值的標頭名稱映射。
x-amz-example: value1 x-amz-example: value2 => x-amz-example:value1,value2
如需詳細資訊,請參閱「RFC 2616 的 4.2 節
」。 -
將每一個標頭名稱值對的名稱值對轉換成格式為
headerName:headerValue
的字串。裁剪headerName
和headerValue
開頭和結尾的任何空格,冒號兩側不留空格。x-amz-example1:value1,value2 x-amz-example2:value3
-
在每個轉換的字串後面插入新的一行 (
U+000A
),包括最後的字串。 -
依標頭名稱按字母順序排序轉換的字串集合。
-
-
建立登入字串值,包含下列項目:
-
行
1
:HTTP 方法 (POST
),後面接新行。 -
行
2
:請求 URI (/
),後面接新行。 -
行
3
:空字串,後面接新行。注意
查詢字串一般會出現在此,但 Amazon SWF 不使用查詢字串。
-
LINES
4–n
:代表您在步驟 1 中計算之正式請求標頭的字串,後面接新行。此新行會在標頭和 HTTP 請求內文之間建立空白行。如需詳細資訊,請參閱 RFC 2616。 -
請求內文後面「不」接新行。
-
-
運算登入字串值的 SHA256 或 SHA1 摘要。整個過程使用同一個 SHA 方法。
-
使用上一個步驟所得值的 SHA256 或 SHA1 摘要 (視您使用的方法而定),以及暫時私密存取金鑰來計算 HMAC-SHA 並進行 Base64 編碼。AWS使用
GetSessionToken
API 動作。注意
Amazon SWF 期望一個等號 (
=
) 在 Base64 編碼的 HMAC-SHA 值結尾處。如果您的 Base64 編碼例行作業不包含附加的等號,請在此值結尾處加上等號。如需將暫時安全憑證結合使用 Amazon SWF 和其他AWS服務,請參閲AWS可搭配 IAM 運作的服務中的IAM User Guide。
-
將結果值放在
Signature
名稱中x-amzn-authorization
發送給 Amazon SWF 的 HTTP 請求標頭。 -
Amazon SWF 會驗證請求並執行指定的操作。