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

Content Moderation:リクエスト署名

最終更新日:Jan 08, 2025

このトピックでは、コンテンツモデレーション API を呼び出すために使用できる署名方式について説明します。

説明 コンテンツモデレーション SDK を直接使用することをお勧めします。署名プロセスは SDK にカプセル化されているため、署名のコードを記述する必要はありません。 SDK の詳細については、Java 用コンテンツモデレーション SDKPython 用コンテンツモデレーション SDKPHP 用コンテンツモデレーション SDKGo 用コンテンツモデレーション SDK、および .NET 用コンテンツモデレーション SDK をご参照ください。

HMAC-SHA1 アルゴリズムを使用した手順 (デフォルト)

  1. リクエストヘッダーをシリアル化します。
    x-acs- で始まるすべてのリクエストヘッダーを連結して、次のルールに基づいて文字列を作成します。
    1. x-acs- で始まるすべての HTTP ヘッダーを抽出します。
    2. 抽出された HTTP ヘッダーをアルファベット順にソートします。
    3. 各 HTTP ヘッダーを "HTTP ヘッダー名" + ":" + "HTTP ヘッダー値" + "\n" の形式で記述します。
  2. URI とクエリパラメータをシリアル化します。
    URI と clientInfo パラメータを uri + "?clientInfo =" + "ClientInfo の JSON 文字列" 形式で連結します。
    説明 この手順では、URL エンコードは不要です。
  3. 署名対象の文字列を作成します。
    次の構文を使用します。
    "POST\napplication/json\n" + 
    "Content-MD5 ヘッダーの値" + "\n" + 
    "application/json" + "\n" + 
    "Date ヘッダーの値" + "\n" + 
    "シリアル化されたリクエストヘッダー" + "\n" 
    "シリアル化された URI とクエリパラメータ"
    次の例は、画像モデレーションの同期操作を呼び出すために使用できる完全な署名対象の文字列を示しています。
    POST
    application/json
    C+5Y0crpO4sYgC2DNjycug==
    application/json
    Tue, 14 Mar 2017 06:29:50 GMT
    x-acs-signature-method:HMAC-SHA1
    x-acs-signature-nonce:339497c2-d91f-4c17-a0a3-1192ee9e2202
    x-acs-signature-version:1.0
    x-acs-version:2018-05-09
    /green/image/scan?clientInfo={"ip":"127.xxx.xxx.2","userId":"12023xxxx","userNick":"Mike","userType":"others"}
  4. 署名文字列を生成します。
    1. HMAC-SHA1 アルゴリズムを使用して、手順 3 で作成された署名対象の文字列の HMAC 値を計算します。 AccessKey シークレットは、HMAC 計算のキーとして使用されます。 HMAC 値はバイト配列です。
      説明 この手順では、HMAC 値に対して他の操作を実行しないでください。
    2. HMAC 値を Base64 でエンコードして、署名文字列を取得します。
    3. 署名Authorization ヘッダーで "acs" + " " + AccessKeyId + ":" + signature
      説明 上記の構文では、acsAccessKeyId の間にスペースが追加されています。
      の値を取得した署名文字列に設定します。 Authorization ヘッダーの値は、 の構文に従います。

HMAC-SM3 アルゴリズムを使用した手順

  1. リクエストヘッダーをシリアル化します。
    x-acs- で始まるすべてのリクエストヘッダーを連結して、次のルールに基づいて文字列を作成します。
    1. x-acs- で始まるすべての HTTP ヘッダーを抽出します。
    2. 抽出された HTTP ヘッダーをアルファベット順にソートします。
    3. 各 HTTP ヘッダーを "HTTP ヘッダー名" + ":" + "HTTP ヘッダー値" + "\n" の形式で記述します。
  2. URI とクエリパラメータをシリアル化します。
    URI と clientInfo パラメータを uri + "?clientInfo =" + "ClientInfo の JSON 文字列" 形式で連結します。
    説明 この手順では、URL エンコードは不要です。
  3. 署名対象の文字列を作成します。
    次の構文を使用します。
    "POST" + "\n" +
    "application/json" + "\n" +
    "Date ヘッダーの値" + "\n" +
    "シリアル化されたリクエストヘッダー" + "\n"
    "シリアル化された URI とクエリパラメータ"
    次の例は、画像モデレーションの同期操作を呼び出すために使用できる完全な署名対象の文字列を示しています。
    POST
    application/json
    
    application/json
    Wed,29Mar202301:44:08GMT
    x-acs-content-sm3:690c6c542ac53eaa1e2ad724f34d60e689d11db88a2d89469be1fdb2f20fc35c
    x-acs-signature-method:HMAC-SM3
    x-acs-signature-nonce:339497c2-d91f-4c17-a0a3-1192ee9e2202
    x-acs-signature-version:1.0
    x-acs-version:2018-05-09
    /green/image/scan?clientInfo={"ip":"127.xxx.xxx.2","userId":"12023xxxx","userNick":"Mike","userType":"others"}
  4. 署名文字列を生成します。
    1. HMAC-SM3 アルゴリズムを使用して、手順 3 で作成された署名対象の文字列の HMAC 値を計算します。 AccessKey シークレットは、HMAC 計算のキーとして使用されます。 HMAC 値はバイト配列です。
      説明 この手順では、HMAC 値に対して他の操作を実行しないでください。
    2. HMAC 値を Base64 でエンコードして、署名文字列を取得します。
    3. 署名Authorization ヘッダーで "acs" + " " + AccessKeyId + ":" + signature
      説明 上記の構文では、acsAccessKeyId の間にスペースが追加されています。
      の値を取得した署名文字列に設定します。 Authorization ヘッダーの値は、 の構文に従います。