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

ApsaraVideo VOD:リモート認証

最終更新日:Jan 20, 2026

リモート認証は、リソースを保護するためのアクセスの制御機能です。この機能は、Alibaba Cloud Content Delivery Network (CDN) のエッジノードに送信されたユーザーリクエストを検証することで機能します。認証サーバからの検証結果に基づき、CDN は各リクエストの処理方法を決定します。リモート認証を有効にすると、承認されたユーザーのみがリソースにアクセスできるようになります。このトピックでは、リモート認証の仕組み、コンソールでの有効化方法、および関連 API リファレンスについて説明します。

仕組み

ApsaraVideo VOD は、URL 署名とリモート認証の両方をサポートしており、リソースの不正なダウンロードや使用を防止します。これら 2 つの機能は、技術的な実装が異なります:

  • URL 署名:ドメイン名の認証ルールを CDN エッジノードに送信します。その後、エッジノードが認証プロセス全体を処理します。詳細については、「URL 署名」をご参照ください。

  • リモート認証:お客様自身で認証サーバをセットアップし、管理する必要があります。CDN エッジノードが認証を必要とするユーザーリクエストを受信すると、そのリクエストを認証サーバに転送して検証します。

以下の図は、リモート認証の仕組みを示しています。远程鉴权原理图

  1. ユーザーがリソースアクセスリクエストを CDN エッジノードに送信します。リクエストには認証パラメーターが含まれています。

  2. CDN エッジノードはユーザーリクエストを受信し、認証サーバに転送します。

  3. 認証サーバはリクエスト内のパラメーターを検証し、結果を判断して CDN エッジノードに返します。

  4. CDN エッジノードは認証結果に基づいてユーザーリクエストを処理します。認証が成功した場合、アクセスは許可されます。失敗した場合は、アクセスが拒否または制限されます。例:

    • 例 1:認証が成功した場合。CDN エッジノードはキャッシュデータをユーザーに提供します。

    • 例 2:認証が失敗した場合。CDN エッジノードは HTTP 403 ステータスコードをユーザーに返します。

    • 例 3:認証が失敗した場合。CDN エッジノードはユーザーのアクセスをスロットルします。

    • 例 4:認証がタイムアウトした場合。CDN エッジノードはタイムアウト時のデフォルトアクションを実行します。この場合、リクエストは許可されます。

注意事項

リモート認証を有効にすると、すべてのユーザーリクエストが認証されます。リクエストの量が多いと予想される場合は、認証サーバの処理負荷とパフォーマンスを考慮してください。

操作手順

  1. ApsaraVideo VOD コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、設定の管理 を選択します。

  3. 配信の高速化設定 > ドメイン名 をクリックして、ドメイン名ページに移動します。

  4. 設定するドメイン名を見つけ、設定 をクリックします。

  5. RAM をクリックします。

  6. リモート認証 タブをクリックします。

  7. リモート認証 をオンにし、パラメーターを設定します。2021-12-27_15-00-00

    2021-12-30_11-11-03以下の表で、各パラメーターについて説明します。

    パラメーター

    説明

    認証サーバアドレス

    認証サーバのパブリックにアクセス可能なアドレス。入力されたアドレスのフォーマットと値はシステムによって検証されます。

    • フォーマット要件

      フォーマットは以下のいずれかである必要があります:

      • http://example.com/auth

      • https://example.com/auth

      • http://192.0.2.1/auth

      • https://192.0.2.1/auth

    • 値の要件

      値に 127.0.0.1 または localhost を含めることはできません。これらのローカルアドレスは無効です。

    リクエストメソッド

    認証サーバがサポートするリクエストメソッド。有効な値は GETHEADPOST です。

    • POST

      • パラメーターはリクエストボディで送信されます。アドレスバーは変更されません。

      • 理論的には、データ転送サイズに制限はありません。

      • リクエストはキャッシュされず、ブラウザの履歴にも保存されません。

      • 比較的高いセキュリティ。

    • GET

      • パラメーターはリクエストラインで送信されます。アドレスバーには送信されたパラメーター値が表示されます。

      • ブラウザの制限により、最大データ転送サイズは 1024 バイトです。

      • リクエストはキャッシュ可能で、ブラウザの履歴に保存されます。

      • 比較的低いセキュリティ。

    • HEAD

      HEAD メソッドは GET メソッドと同じですが、サーバーは応答でリクエストボディを返しません。

    認証するファイルタイプ

    • [すべてのファイルタイプ]:すべてのファイルが認証されます。

    • [指定されたファイルタイプ]:指定されたファイルタイプのみが認証されます。

      • 複数のファイルタイプを指定するには、縦棒 (|) で区切ります。例:mp4|flv。

      • ファイルタイプでは大文字と小文字が区別されます。たとえば、jpg と JPG は異なるファイルタイプです。

    パラメーター保持設定

    ユーザーのリクエスト URL からどのパラメーターを認証に含めるかを制御します。[すべてのパラメーターを保持][指定されたパラメーターを保持]、または [すべての URL パラメーターを削除] を選択できます。

    • 指定されたパラメーターを保持するには、複数のパラメーターを縦棒 (|) で区切ります。例:user|token。

    • パラメーターでは大文字と小文字が区別されます。たとえば、key と KEY は異なるパラメーターです。

    カスタムパラメーターの追加

    CDN エッジノードが認証サーバに転送するリクエスト URL にカスタムパラメーターを追加します。

    [カスタム] を選択してパラメーターと値を設定するか、[パラメーターの選択] から ApsaraVideo VOD コンソールのプリセット変数を使用できます。

    • カスタムパラメーターと値を設定する場合は、次の点に注意してください:

      • 複数のパラメーターを縦棒 (|) で区切ります。例:token=$arg_token|vendor=ali_cdn。

      • パラメーターでは大文字と小文字が区別されます。たとえば、key と KEY は異なるパラメーターです。

    • プリセット変数を使用する場合、変数の値を抽出し、CDN が認証サーバに転送するリクエストに追加できます。

      たとえば、$http_host 変数を選択すると、host=$http_host がユーザーのリクエスト URL に追加されます。ここで、host はユーザーのリクエストヘッダーの host フィールドの値を表します。変数名とその意味については、「変数」をご参照ください。

    リクエストヘッダー保持設定

    ユーザーのリクエストからどのヘッダーを認証に含めるかを制御します。[すべてのヘッダーを保持][指定されたヘッダーを保持]、または [すべてのリクエストヘッダーを削除] を選択できます。

    • 指定されたヘッダーを保持するには、複数のヘッダーを縦棒 (|) で区切ります。例:user_agent|referer|cookies。

    • パラメーターでは大文字と小文字は区別されません。たとえば、http_remote_addr と HTTP_Remote_Addr は同じパラメーターです。

    説明

    [すべてのヘッダーを保持] を選択した場合、CDN POP はデフォルトで HOST ヘッダーを削除します。HOST ヘッダーを保持するには、[指定されたヘッダーを保持] または [カスタムパラメーターの追加] を使用します。認証サーバに転送される HOST ヘッダーには CDN ドメイン名が含まれているため、デフォルトで HOST ヘッダーは削除されます。これにより、認証サーバがリクエストを認識できず、404 エラーや認証失敗が発生する可能性があります。

    カスタムパラメーターの追加

    CDN エッジノードが認証サーバに転送するリクエストヘッダーにカスタムパラメーターを追加します。

    [カスタム] を選択してパラメーターと値を設定するか、[パラメーターの選択] から ApsaraVideo VOD コンソールのプリセット変数を使用できます。

    • カスタムパラメーターと値を設定する場合は、次の点に注意してください:

      • 複数のリクエストヘッダーを縦棒 (|) で区切ります。例:User-Agent=$http_user_agent|vendor=ali_cdn。

      • パラメーターでは大文字と小文字は区別されません。たとえば、http_remote_addr と HTTP_Remote_Addr は同じパラメーターです。

    • プリセット変数を使用する場合、変数の値を抽出し、CDN が認証サーバに転送するリクエストに追加できます。

      たとえば、$http_host 変数を選択すると、host=$http_host がユーザーのリクエスト URL に追加されます。ここで、host はユーザーのリクエストヘッダーの host フィールドの値を表します。変数名とその意味については、「変数」をご参照ください。

    成功ステータスコード

    認証が成功した場合に認証サーバが返す HTTP ステータスコード。これを 2xx ステータスコードに設定することを推奨します。

    たとえば、これを 200 に設定すると、認証サーバからの 200 の応答は成功を意味します。サーバーが成功または失敗のコードではないステータスコードを返した場合、リクエストはタイムアウトします。

    認証失敗ステータスコード

    認証が失敗した場合に認証サーバが返す HTTP ステータスコード。これを 4xx ステータスコードに設定することを推奨します。

    たとえば、これを 403 に設定すると、認証サーバからの 403 の応答は失敗を意味します。サーバーが成功または失敗のコードではないステータスコードを返した場合、リクエストはタイムアウトします。

    カスタム応答ステータスコード

    認証が失敗した場合に CDN エッジノードがユーザーに返すステータスコード。

    たとえば、これを 403 に設定すると、リクエストの認証が失敗した場合に CDN エッジノードはユーザーに 403 を返します。

    タイムアウト期間

    CDN エッジノードが認証リクエストを送信してから、認証サーバから応答を受信するまでの時間。

    単位はミリ秒です。最大値は 3000 ミリ秒です。

    タイムアウト時のアクション

    認証サーバとのやり取りがタイムアウトした場合に、CDN エッジノードがユーザーリクエストに対して実行するアクション。有効な値:

    • [許可]:CDN POP はユーザーリクエストを許可します。

    • [拒否]:CDN POP はリクエストを拒否し、設定したカスタム応答ステータスコードを返します。

  8. [OK] をクリックして設定を完了します。

    リモート認証を設定した後、リモート認証 タブで変更または無効にすることができます。

変数

カスタムパラメーターを追加する際に、ApsaraVideo VOD コンソールで利用可能なプリセット変数を使用できます。これらの変数については、以下の表で説明します。

変数名

説明

$http_host

リクエストヘッダーの host フィールドの値。

$http_user_agent

リクエストヘッダーの user_agent フィールドの値。

$http_referer

リクエストヘッダーの referer フィールドの値。

$http_content_type

リクエストヘッダーの content_type フィールドの値。

$http_x_forward_for

リクエストヘッダーの x_forward_for フィールドの値。

$remote_addr

リクエストのクライアント IP アドレス。

$scheme

リクエストのプロトコルタイプ。

$server_protocol

リクエストのプロトコルバージョン。

$uri

リクエストの元の URI。

$args

リクエストのクエリ文字列。疑問符 (?) は含まれません。

$request_method

リクエストメソッド。

$request_uri

uri + '?' + args の内容。

関連する API 操作

ドメイン名の一括設定