ApsaraVideo Liveを使用すると、各HTTPまたはHTTPSコールバックリクエストに特定の署名ヘッダーを追加できます。 このようにして、コールバックメッセージを受信するサーバは、署名を認証して、違法または無効な要求を防ぐことができます。 このトピックでは、HTTPコールバック認証のパラメーター、ルール、および考慮事項について説明します。
認証パラメータ
次の表に、HTTPコールバック要求ヘッダーに追加できる認証パラメーターを示します。
パラメーター | 説明 |
ALI-LIVE-TIMESTAMP | コールバック要求が開始された時刻。 この値は UNIX タイムスタンプです。 単位は秒です。 |
ALI-LIVE-SIGNATURE | 署名文字列。長さが32文字のMD5値です。 詳細については、このトピックの「署名の計算」セクションをご参照ください。 |
署名の計算
ALI-LIVE-SIGNATUREパラメーターの値は、次の表に示すパラメーターの値に基づいて生成されます。
パラメーター | 例 | 説明 |
Callbackドメイン |
| コールバックURLのホスト名。 コールバックURLが |
ALI-LIVE-TIMESTAMP | 1519375990 | コールバック要求が開始された時刻。 この値は UNIX タイムスタンプです。 単位は秒です。 |
NotifyAuthKey | yourkey | 指定した署名キー。 説明 UpdateLiveSnapshotNotifyConfigを呼び出してキーを変更します。 |
パラメーターの連結
上記の3つのパラメーターを縦棒 (|) で区切って連結し、連結文字列のMD5値を計算します。 次のサンプルコードに例を示します。
MD5Content = Callback domain|ALI-LIVE-TIMESTAMP|NotifyAuthKey
ALI-LIVE-SIGNATURE = md5sum(MD5Content)
署名文字列の計算
次の例は、ALI-LIVE-SIGNATUREパラメーターの値を計算する方法を示しています。
ALI-LIVE-SIGNATURE = md5sum(learn.aliyundoc.com|1519375990|yourkey)
権限付与ルール
コールバックメッセージを受信するサーバーは、コールバックドメイン、ALI-LIVE-TIMESTAMP、およびNotifyAuthKeyを文字列に連結し、文字列のMD5値を計算します。 次いで、サーバは、MD5値を、ALL-LIVE-SIGNATUREパラメータの取得値と比較します。 2つの値が異なる場合、サーバーは要求を拒否します。
コールバックメッセージを受信するサーバーは、現在の時刻を取得し、現在の時刻とコールバック要求のALI-LIVE-TIMESTAMPパラメーターで指定された時刻の差を計算します。 時差がサーバーによって設定された制限 (5分など) を超えると、サーバーはリクエストを拒否します。
計算された時間差は、誤った時間設定のために不正確です。 したがって、時差検証は任意です。 コールバックメッセージを受信したサーバの時差検証を有効にするかどうかを判断できます。
考慮事項
コールバック認証はオプションです。 コールバック認証を有効にすることを推奨します。 NotifyAuthKeyパラメーターを指定すると、コールバック要求には、コールバックメッセージを受信するサーバーによって実行される認証のすべての認証関連コンテンツが含まれます。 サーバーのコールバック認証を有効にするかどうかを決定できます。
NotifyAuthKeyパラメーターを指定しない場合、ビジネスは影響を受けません。
署名キーを変更した場合、更新されたキーはストリーム取り込みを再開した後にのみ有効になります。 前のキーは、進行中のストリーム取り込みに対して引き続き有効です。