ApsaraVideo VODを使用すると、各HTTP (HTTPS) コールバックリクエストに特定の署名ヘッダーを追加できます。 このようにして、コールバックメッセージを受信するサーバは、署名を認証して、違法または無効な要求を防ぐことができる。 このトピックでは、HTTPコールバック認証のパラメーター、ルール、および注意事項について説明します。
認証パラメータ
次の表に、HTTPコールバック要求ヘッダーに追加できる認証パラメーターを示します。
パラメーター | 説明 |
---|---|
X-VOD-TIMESTAMP | コールバック要求が送信されたときのUNIXタイムスタンプ。 値は10桁の正の整数で、1970年1月1日木曜日00:00:00から経過した秒数を表します。 |
X-VOD-SIGNATURE | 32文字のMD5値である署名文字列。 詳細については、次のセクションをご参照ください。 |
署名アルゴリズム
X-VOD-SIGNATUREパラメーターの値は、次の表に示すパラメーターに基づいて計算されます。
パラメーター | 例 | 説明 |
---|---|---|
コールバックURL | https://www.example.com/your/callback | 設定したコールバックURL。 |
X-VOD-TIMESTAMP | 1519375990 | コールバック要求が送信されたときのUNIXタイムスタンプ。 値は10桁の正の整数で、1970年1月1日木曜日00:00:00から経過した秒数を表します。 |
PrivateKey | test123 | 指定した署名キー。 |
上記の3つのパラメーターを縦棒 (|) で区切って連結し、連結文字列のMD5値を計算します。 MD5値は、X-VOD-SIGNATUREパラメータの値として使用されます。
MD5Content=コールバックURL | X-VOD-TIMESTAMP | PrivateKey
X-VOD-SIGNATURE = md5sum(MD5Content)
例:
X-VOD-SIGNATURE = md5sum(https://www.example.com/your/callback | 1519375990 | test123) = c72b60894140fa98920f1279219b ****
権限付与ルール
- コールバックメッセージ受信サーバーは、コールバックURL、X-VOD-TIMESTAMP、およびPrivateKeyを文字列に連結し、文字列のMD5値を計算します。 そして、コールバックメッセージ受信サーバは、MD5の値と取得したX-VOD-SIGNATURE値とを比較する。 2つの値が異なる場合、コールバック・メッセージ受信サーバは、要求を無効と判断する。
- コールバックメッセージ受信サーバは、現在時刻を取得し、現在時刻とコールバック要求内のX-VOD-TIMESTAMPパラメータによって指定された時刻との差を計算する。
時間差がサーバーによって設定された値 (たとえば、5分) を超える場合、コールバックメッセージ受信サーバーはリクエストを無効と判断します。
注 計算された時間差は、誤った時間設定のために不正確である。 したがって、時差検証は任意である。 コールバックメッセージ受信サーバで有効にするかどうかを決定できます。
PrivateKeyの切り替え
PrivateKey値を変更する場合、コールバックサービスが影響を受けないように、コールバックメッセージ受信サーバーは古いキーと新しいキーの両方に基づく認証をサポートする必要があります。 この場合、コールバックメッセージ受信サーバは、新旧のキーに基づいて認証を実施することができる。
キーを切り替えるには、次の操作を行うことを推奨します。
- PrivateKeyパラメーターの新しい値を定義します。
- 古いキーと新しいキーの両方をサポートするように、コールバックメッセージ受信サーバーをアップグレードします。
- ApsaraVideo VODコンソールでPrivateKeyを新しい値に更新します。
- しばらくしてから、コールバックメッセージ受信サーバーから古いキーのサポートを削除します。
- PrivateKeyの値が変更されます。
その他の注意事項
- コールバック認証はオプションです。 コールバック認証を有効にすることを推奨します。 PrivateKeyパラメーターが設定されている場合、コールバック要求には、コールバックメッセージ受信サーバーが認証を実行するためのすべての認証関連コンテンツが含まれます。 サーバーで認証を有効にするかどうかを決定できます。
- PrivateKeyパラメーターを設定しない場合でも、コールバックサービスを正常に使用できます。