デフォルトでは、ApsaraVideo VOD によって配信されるコンテンツは公開されており、URL を使用してアクセスできます。ホットリンクや不正アクセスからリソースを保護したい場合は、referer ホワイトリストとブラックリスト、IP ホワイトリストとブラックリスト、および URL 署名を設定してアクセス制御を調整できます。URL 署名は、URL に署名文字列とタイムスタンプを追加して、オリジンサーバーのアクセス制御を向上させます。
認証ロジック
URL 署名は、Alibaba Cloud CDN の Point of Presence (POP) をオリジンサーバーと連携させて使用し、オリジンコンテンツをホットリンクから保護します。URL 署名には、以下のオブジェクトが関与します。
ビジネスアプリケーションサーバー: サーバーは、認証アルゴリズムや暗号化キーを含む URL 署名ルールに基づいて URL に署名します。
ユーザーアプリ/Web: クライアントはリクエストを開始し、署名付き URL を POP に送信して認証を受けます。
CDN ノード: ノードは、署名やタイムスタンプなど、リクエストに含まれる認証情報を検証します。
URL 署名の仕組みを以下のステップで説明します。
お客様は、ビジネスアプリケーションサーバーで URL 署名ルールを設定します。
クライアントはビジネスアプリケーションサーバーにアクセスして、署名付き URL を取得します。
ビジネスアプリケーションサーバーは、クライアントのニーズに基づいて、リクエストされたリソースの署名付き URL を返します。
クライアントは署名付き URL を使用して、POP からリソースをリクエストします。
POP は署名付き URL の認証情報をチェックし、リクエストが有効かどうかを判断します。
リクエストが認証に失敗した場合、POP はリクエストを拒否します。
リクエストが認証に成功した場合、POP はリクエストに応答します。
リクエストが認証に成功した場合、リソースは CDN ノードのキャッシュロジックに基づいて返されます。
説明リクエストされたリソースが POP にキャッシュされていない場合、POP は URL から認証パラメーターを削除し、リクエストがオリジンサーバーにリダイレクトされる前に URL を元のバージョンに復元します。たとえば、URL は
http://DomainName/FileNameに復元されます。その後、元の URL を使用してキャッシュキーを生成するか、リクエストをオリジンサーバーにリダイレクトします。リクエストが認証に成功した後、URL 内の等号 (
=) やプラス記号 (+) などの特殊文字はエスケープされます。
URL 署名の有効化と設定
URL 署名を有効にする前に、オリジンサーバーで認証アルゴリズムや暗号化キーを含む URL 署名ルールが設定されていることを確認してください。
ApsaraVideo VOD の認証ロジックは、オリジンサーバーの認証ロジックと同じでなければなりません。
ApsaraVideo VOD コンソールにログインします。
ApsaraVideo VOD コンソールの左側のナビゲーションウィンドウで、 を選択して、[ドメイン名] ページに移動します。
URL 署名を設定するドメイン名を選択し、[操作] 列の [設定] をクリックします。
[リソースアクセス管理] をクリックします。
[URL 認証] タブをクリックし、[URL 認証設定] セクションの [変更] をクリックします。
[URL 認証] をオンにし、URL 認証情報を設定します。

次の表にパラメーターを示します。
パラメーター
説明
認証タイプ
ApsaraVideo VOD の URL 署名機能は、3 つの署名タイプをサポートしています。ビジネス要件に基づいて署名タイプを選択し、オリジンサーバー上のリソースを保護できます。サポートされている署名タイプ:
説明URL 署名が失敗すると、403 エラーが返されます。エラーの原因には、以下が含まれます。
無効な MD5 値
例:
X-Tengine-Error:denied by req auth: invalid md5hash=de7bfdc915ced05e17380a149bd7****無効なタイムスタンプ
例:
X-Tengine-Error:denied by req auth: expired timestamp=143946****
プライマリキー
選択した署名タイプのプライマリキーを指定します。プライマリキーは、長さが 6 ~ 32 文字で、大文字、小文字、数字を含めることができます。
セカンダリキー
選択した署名タイプのセカンダリキーを指定します。セカンダリキーは、長さが 6 ~ 32 文字で、大文字、小文字、数字を含めることができます。プライマリキーまたはセカンダリキーのいずれかを指定する必要があります。
説明プライマリキーとセカンダリキーは同じ効果を持ちます。セカンダリキーは、スムーズな切り替えを保証するために使用されます。プライマリキーが変更されると、元のプライマリキーを使用する生成済みのすべての再生 URL は直ちに無効になります。プライマリキーをセカンダリキーに切り替えると、元のプライマリキーを使用する生成済みの再生 URL は一定期間有効なままになります。セカンダリキーはプライマリキーとして機能します。これにより、スムーズな切り替えが保証されます。
デフォルトの有効期間
署名付き URL の有効期間を指定します。ユーザーは、署名付き URL の有効期限が切れる前に ApsaraVideo VOD にアクセスできます。署名付き URL の有効期限が切れる時間は、次の数式に基づいて計算されます: 有効期限 = タイムスタンプ + 有効期間。
デフォルト値: 30。単位: 分。
たとえば、署名付き URL のタイムスタンプが 2020-08-15 15:00:00 (UTC+08:00) で、有効期間が 30 分の場合、この署名付き URL は 2020 年 8 月 15 日 15:30:00 (UTC+08:00) まで有効です。
プレビュー
プレビュー機能が有効になっている場合、ユーザーはビデオまたはオーディオファイルのスニペット (ファイルの最初の 5 分間など) を視聴できます。この機能は、非会員に料金を請求するビデオやオーディオコンテンツなどの有料サービスで広く使用されています。詳細については、「ビデオプレビュー」をご参照ください。
[OK] をクリックして設定を完了します。
設定が完了すると、このドメイン名に対して URL 認証が有効になります。
リソースが ApsaraVideo VOD コンソールにある場合、システムは有効期限付きの署名付き URL を自動的に生成します。GetPlayInfo 操作を呼び出して署名付き URL を取得することもできます。
説明URL 認証が有効になると、ビデオファイル、オーディオファイル、サムネイル、スナップショットの URL が署名されます。
URL 署名の無効化
ApsaraVideo VOD で URL 署名が無効になっているにもかかわらず、ユーザーリクエストに認証パラメーターが含まれている場合、ApsaraVideo VOD は認証パラメーターを削除できません。この場合、リクエストはキャッシュにヒットせず、オリジンサーバーにリダイレクトされます。これにより、オリジンサーバーのネットワークトラフィックとデータ転送料金が増加します。URL 署名を無効にする場合は、オリジンサーバーと ApsaraVideo VOD の両方で URL 署名が無効になっていることを確認してください。
[URL 認証設定] セクションで、[変更] をクリックします。
[URL 認証] スイッチをオフにします。
アプリケーションサーバーのリクエスト URL から認証パラメーターを削除します。
署名付き URL の生成
コンソールでの生成
認証ロジックが正しく実装されていることを確認するために、ApsaraVideo VOD コンソールでテストを実行して、署名付き URL が正しいかどうかを確認することをお勧めします。
[署名付き URL の生成] セクションで、[オリジナル URL] と認証情報を設定します。
次の表にパラメーターを示します。
パラメーター
説明
オリジナル URL
完全なオリジナル URL を入力します。例:
https://****.com/ecs.mp4。認証タイプ
「URL 署名の有効化と設定」での設定に基づいて、URL 認証タイプ (A/B/C) を選択します。
認証キー
「URL 署名の有効化と設定」での設定に基づいて、[プライマリキー] または [セカンダリキー] を入力します。
有効期間
「URL 署名の有効化と設定」での設定に基づいて、URL 認証の有効期間を入力します。単位: 秒。例: 1800。
[生成] をクリックして、[署名付き URL] と [タイムスタンプ] を取得します。

SDK を使用した署名付き URL の生成
ApsaraVideo VOD SDK をビジネスサーバーに統合し、GetPlayInfo 操作を呼び出して署名付き URL を生成できます。
コードを使用した署名付き URL の生成
コードを使用して、3 つの異なる署名タイプに基づいて署名付き URL を連結および生成できます。