HTTPリクエストのコールバックメソッドを使用する場合、HTTPリクエストヘッダーに認証パラメーターを追加できます。このようにして、コールバックメッセージを受信するサーバーは、署名を認証して、不正なリクエストや無効なリクエストを防止できます。このトピックでは、認証パラメーター、署名の計算、サーバーの認証ルール、および認証キーの切り替えについて説明します。
使用上の注意
ビジネス要件に基づいて、コールバック認証を有効または無効にすることができます。コールバック認証を有効にすることをお勧めします。元の機能は、コールバック認証を有効または無効にしても影響を受けません。コールバック認証が有効になっている場合、コールバックリクエストにはすべての認証関連情報が含まれます。コールバックメッセージを受信するサーバーは、この情報を使用してコールバックリクエストを認証します。これは、不正なリクエストをフィルタリングし、システムセキュリティを強化するのに役立ちます。
認証パラメーター
HTTPリクエストのコールバックメソッドを使用する場合、次の認証パラメーターをHTTPリクエストヘッダーに追加できます。
パラメーター | 説明 |
X-ICE-TIMESTAMP | HTTPリクエストが開始された時刻。値はUNIXタイムスタンプです。 |
X-ICE-SIGNATURE | 署名文字列。32文字のMD5値です。このパラメーターの値の計算方法の詳細については、このトピックの「署名の計算」セクションを参照してください。 |
署名の計算
X-ICE-SIGNATUREパラメーターの値は、次の表に示すパラメーターに基づいて計算されます。
パラメーター | 説明 | 例 |
コールバック URL | HTTPリクエストのコールバック URL です。 | https://www.example.com/your/callback |
X-ICE-TIMESTAMP | HTTPリクエストが開始された時刻。値はUNIXタイムスタンプです。 | 1519375990 |
認証キー | ユーザーが事前に設定した署名キー。キーは最大32文字で、大文字、小文字、数字を含める必要があります。 | Test123 |
上記の3つのパラメーターを縦棒(|)で区切って連結します。次に、連結された文字列のMD5ハッシュ値を計算します。サンプルコード:
MD5Content = Callback URL|X-ICE-TIMESTAMP|Authentication Key
X-ICE-SIGNATURE = md5sum(MD5Content)X-ICE-SIGNATUREパラメーターの値を計算するためのサンプルコード:
X-ICE-SIGNATURE = md5sum(https://www.example.com/your/callback|1519375990|Test123) = c72b60894140fa98920f1279219b****コールバックメッセージを受信するサーバーの認証ルール
コールバックメッセージを受信するサーバーは、コールバック URL、X-ICE-TIMESTAMP、および認証キーを文字列に連結し、文字列のMD5ハッシュ値を計算します。次に、サーバーはMD5ハッシュ値をX-ICE-SIGNATUREパラメーターの値と比較します。2つの値が異なる場合、リクエストは無効と見なされます。
コールバックメッセージを受信するサーバーは、現在の時刻を取得し、現在の時刻とコールバックリクエストのX-ICE-TIMESTAMPパラメーターで指定された時刻の差を計算します。時間差がサーバーで設定された値(5分など)を超える場合、リクエストは無効と見なされます。
認証キーの切り替え
認証キーを切り替える必要がある場合、コールバックメッセージを受信するサーバーは、新旧両方のキーに基づいて一定期間認証をサポートする必要があります。これにより、コールバックサービスが影響を受けないようにします。この場合、サーバーは新旧両方のキーに基づいて認証を実装する必要があります。キーを切り替えるには、次の手順を実行することをお勧めします。
新しい認証キーを定義します。
コールバックメッセージを受信するサーバーを更新して、新旧両方のキーに基づく認証をサポートします。
IMSコンソール で、コールバック認証用に新しい認証キーを設定します。
一定期間後、コールバックメッセージを受信するサーバーから古いキーのサポートを削除します。