はい、CloudMonitorはHMAC-SHA1署名アルゴリズムをサポートしています。 CloudMonitorがサポートする唯一の署名アルゴリズムです。 HMAC-SHA1署名アルゴリズムを使用するには、このトピックで説明する手順を実行します。
手順
- Alibaba Cloud AccessKeyペアを準備します。 HTTPリクエストの署名を生成するには、AccessKey IDとAccessKey secretのペアが必要です。説明 既存のAccessKeyペアを使用するか、作成することができます。 AccessKeyペアはアクティブである必要があります。
- HTTPリクエストの署名文字列を生成します。 HTTPリクエストの署名文字列は、HTTPリクエストのMethod、Header、およびBodyフィールドに基づいて生成されます。
SignString = VERB + "\n" + CONTENT-MD5 + "\ n" +コンテンツタイプ+ "\ n" + DATE + "\ n" + CanonicalizedHeaders + "\n" + CanonicalizedResource
上記の式で、\n
はエスケープされた改行文字を示し、プラス記号 (+
) は文字列連結演算子を示します。 他のフィールドの定義を次の表に示します。パラメーター 説明 例 VERB リクエストの作成に使用されるHTTPメソッド。 PUT、GET、POST CONTENT-MD5 HTTPリクエストのBodyフィールドのMD5値。 説明 MD5値は、大文字と数字で構成される文字列である必要があります。0B9BE351E56C90FED853B32524253E8B CONTENT-TYPE HTTP リクエストボディの型 application/json 日付 HTTPリクエストの標準タイムスタンプヘッダー。 説明 このタイムスタンプヘッダーは、RFC 1123時間形式に従い、GMT標準時間を使用します。Mon, 3 Jan 2010 08:33:47 GMT CanonicalizedHeaders HTTPリクエストの先頭に x-cms
とx-acs
が付いたカスタムヘッダーから作成された文字列。- x-cms-api-version:0.1.0
- x-cms-signature
CanonicalizedResource HTTP要求によって要求されたリソースから構築された文字列。 /event/custom/upload 上記の表のCanonicalizedHeaders文字列とCanonicalizedResource文字列は、次のルールに基づいて作成されます。
- CanonicalizedHeaders
x-cms
およびx-acs
の接頭辞が付いているすべてのヘッダーの名前を小文字に変換します。- 前の手順で生成された大文字と小文字を区別したヘッダーを辞書順に並べ替えます。
- 各ヘッダーと値の間の区切り文字の両側のスペースをすべて削除します。
- 前のすべてのヘッダーを区切り記号 (
\n
) で区切り、最終的なCanonicalizedHeaders文字列を作成します。
- CanonicalizedResource
- CanonicalizedResource文字列を空の文字列 ("") に設定します。
- アクセスするURI (
/event/custom/upload
など) を引用符の間に配置します。 - リクエストにクエリ文字列が含まれている場合は、疑問符 (
?
) とクエリ文字列をCanonicalizedResource文字列の末尾に追加します。ソート文字列は、URIに含まれるリクエストパラメータの辞書式にソートされた文字列です。 パラメーターの名前と値の間に等号 (
=
) を使用して文字列を形成します。 次に、パラメータ名とパラメータ値のペアを辞書式の順序でソートし、アンパサンド (&
) で接続して文字列を形成します。 次の式を使用して、クエリ文字列を作成します。QUERY_STRING = "KEY1=VALUE1" + "&" KEY2=VALUE2 "
- HTTPリクエストのデジタル署名を生成します。 デジタル署名を生成するための式:
signature=base16(hmac-sha1(UTF8-Encoding-Of(SignString),AccessKeySecret))
HTTPリクエストのサンプル署名文字列:SignString="POST" + "\n" + "0B9BE351E56C90FED853B32524253E8B" + "\n" + "application/json" + "\n" + 「12月11日火曜日2018 21:05:51 + 0800」 + 「 \n」 + "x-cms-api-version:1.0" + "\n" + "x-cms-ip:127.0.0.1" + "\n" + "x-cms-signature:hmac-sha1" + "\n" + 「 /メトリック /カスタム /アップロード」 accesskey="testkey" accessSecret="testsecret" // HTTPリクエストの署名に使用されるAccessKeyシークレット。
前の署名文字列に基づいて生成された署名:1DC19ED63F755ACDE203614C8A1157EB1097E92 2