すべてのプロダクト
Search
ドキュメントセンター

CloudMonitor:CloudMonitorはHMAC-SHA1署名アルゴリズムをサポートしていますか?

最終更新日:May 15, 2024

はい、CloudMonitorはHMAC-SHA1署名アルゴリズムをサポートしています。 CloudMonitorがサポートする唯一の署名アルゴリズムです。 HMAC-SHA1署名アルゴリズムを使用するには、このトピックで説明する手順を実行します。

手順

  1. Alibaba Cloud AccessKeyペアを準備します。
    HTTPリクエストの署名を生成するには、AccessKey IDとAccessKey secretのペアが必要です。
    説明 既存のAccessKeyペアを使用するか、作成することができます。 AccessKeyペアはアクティブである必要があります。
  2. HTTPリクエストの署名文字列を生成します。
    HTTPリクエストの署名文字列は、HTTPリクエストのMethodHeader、およびBodyフィールドに基づいて生成されます。
    SignString = VERB + "\n"
                 + CONTENT-MD5 + "\ n"
                 +コンテンツタイプ+ "\ n"
                 + DATE + "\ n"
                 + CanonicalizedHeaders + "\n"
                 + CanonicalizedResource 
    上記の式で、\nはエスケープされた改行文字を示し、プラス記号 (+) は文字列連結演算子を示します。 他のフィールドの定義を次の表に示します。
    パラメーター説明
    VERBリクエストの作成に使用されるHTTPメソッド。 PUT、GET、POST
    CONTENT-MD5HTTPリクエストのBodyフィールドのMD5値。
    説明 MD5値は、大文字と数字で構成される文字列である必要があります。
    0B9BE351E56C90FED853B32524253E8B
    CONTENT-TYPEHTTP リクエストボディの型 application/json
    日付HTTPリクエストの標準タイムスタンプヘッダー。
    説明 このタイムスタンプヘッダーは、RFC 1123時間形式に従い、GMT標準時間を使用します。
    Mon, 3 Jan 2010 08:33:47 GMT
    CanonicalizedHeadersHTTPリクエストの先頭にx-cmsx-acsが付いたカスタムヘッダーから作成された文字列。
    • x-cms-api-version:0.1.0
    • x-cms-signature
    CanonicalizedResourceHTTP要求によって要求されたリソースから構築された文字列。 /event/custom/upload

    上記の表のCanonicalizedHeaders文字列とCanonicalizedResource文字列は、次のルールに基づいて作成されます。

    • CanonicalizedHeaders
      1. x-cmsおよびx-acsの接頭辞が付いているすべてのヘッダーの名前を小文字に変換します。
      2. 前の手順で生成された大文字と小文字を区別したヘッダーを辞書順に並べ替えます。
      3. 各ヘッダーと値の間の区切り文字の両側のスペースをすべて削除します。
      4. 前のすべてのヘッダーを区切り記号 (\n) で区切り、最終的なCanonicalizedHeaders文字列を作成します。
    • CanonicalizedResource
      1. CanonicalizedResource文字列を空の文字列 ("") に設定します。
      2. アクセスするURI (/event/custom/uploadなど) を引用符の間に配置します。
      3. リクエストにクエリ文字列が含まれている場合は、疑問符 (?) とクエリ文字列をCanonicalizedResource文字列の末尾に追加します。

        ソート文字列は、URIに含まれるリクエストパラメータの辞書式にソートされた文字列です。 パラメーターの名前と値の間に等号 (=) を使用して文字列を形成します。 次に、パラメータ名とパラメータ値のペアを辞書式の順序でソートし、アンパサンド (&) で接続して文字列を形成します。 次の式を使用して、クエリ文字列を作成します。

        QUERY_STRING = "KEY1=VALUE1" + "&" KEY2=VALUE2 "
  3. 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