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

ApsaraVideo VOD:リモート認証

最終更新日:Jul 11, 2026

リモート認証は、リソースを保護するためのアクセス制御機能です。ユーザーリクエストが Alibaba Cloud CDN の POP (Point of Presence) に到達すると、POP はそのリクエストを認証サーバーに転送して検証し、その結果に基づいてリクエストを処理します。これにより、承認されたユーザーのみがコンテンツにアクセスできるようになります。

仕組み

ApsaraVideo VOD は、URL 署名とリモート認証の両方をサポートしており、コンテンツが不正にダウンロードされたり、ホットリンクされたりするのを防ぎます。これら 2 つの機能は、実装方法が異なります。

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

  • リモート認証:お客様自身で認証サーバーを用意し、管理する必要があります。CDN POP が認証を必要とするリクエストを受信すると、そのリクエストをお客様のサーバーに転送して検証します。

以下の図は、リモート認証のプロセスを示しています:远程鉴权原理图

  1. ユーザーがリソースをリクエストする際、認証パラメーターを含めて CDN POP に送信します。

  2. CDN POP はユーザーリクエストを受信し、お客様の認証サーバーに転送します。

  3. 認証サーバーはリクエスト内のパラメーターを検証し、その結果を CDN POP に返します。

  4. CDN POP は認証結果に基づいてユーザーリクエストを処理します。認証が成功した場合、POP はリクエストを許可します。認証が失敗した場合、POP はリクエストを拒否または制限します。以下に例を示します。

    • 例 1:認証成功。CDN POP はキャッシュされたコンテンツをユーザーに提供します。

    • 例 2:認証失敗。CDN POP は 403 ステータスコードをユーザーに返します。

    • 例 3:認証失敗。CDN POP はユーザーのアクセスに対してスロットリングを実行します。

    • 例 4:認証タイムアウト。CDN POP はユーザーリクエストを許可します。これがデフォルトの動作です。

注意事項

リモート認証を有効にすると、すべてのユーザーリクエストに対して認証が必要になります。大量のトラフィックが予想される場合は、認証サーバーがその負荷を処理できることを確認してください。

操作手順

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

  2. 左側メニューで、設定の管理 を選択します。

  3. 配信の高速化設定 > ドメイン名 を選択します。

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

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

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

  7. リモート認証 スイッチをオンにし、各項目を設定します。

    パラメーターの詳細は、次の表を参照してください。

    パラメーター

    説明

    認証サーバーアドレス

    認証サーバーの外部からアクセス可能なアドレス。アドレスは、次の形式と値の要件を満たす必要があります。

    • 形式要件

      アドレスは、次のいずれかの形式である必要があります。

      • 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

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

      • 送信されるデータ量に実質的な制限はありません。

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

      • セキュリティは比較的高くなります。

    • GET

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

      • ブラウザの制限により、送信可能なデータ量は 1,024 バイトに制限されます。

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

      • セキュリティは比較的低くなります。

    • HEAD

      HEAD メソッドは GET メソッドと同じですが、サーバーがレスポンスでメッセージボディを返さない点が異なります。

    ファイルタイプ

    • すべてのファイルタイプ:すべてのファイル形式のリクエストを認証します。

    • 指定されたファイルタイプ:指定されたファイル形式のリクエストのみを認証します。

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

      • ファイル形式では大文字と小文字が区別されます。たとえば、jpgJPG は異なるファイル形式と見なされます。

    パラメーターの保持

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

    • 指定されたパラメーターを保持することを選択した場合、複数のパラメーターを縦棒 (|) で区切ります (例:user|token)。

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

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

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

    [カスタム] を選択してカスタムパラメーターと値を設定するか、[パラメーターの選択] を選択してコンソールから定義済み変数を使用できます。

    • カスタムパラメーターと値を設定する場合:

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

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

    • 定義済み変数を使用する場合、その値を抽出し、CDN POP が転送するリクエストに追加できます。

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

    リクエストヘッダーの保持

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

    • 指定されたヘッダーを保持することを選択した場合、複数のヘッダーを縦棒 (|) で区切ります (例:user_agent|referer|cookies)。

    • リクエストヘッダーでは大文字と小文字は区別されません。たとえば、http_remote_addrHTTP_Remote_Addr は同じヘッダーと見なされます。

    説明

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

    カスタムヘッダーの追加

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

    [カスタム] を選択してカスタムヘッダーと値を設定するか、[パラメーターの選択] を選択してコンソールから定義済み変数を使用できます。

    • カスタムパラメーターと値を設定する場合:

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

      • リクエストヘッダーでは大文字と小文字は区別されません。たとえば、http_remote_addrHTTP_Remote_Addr は同じヘッダーと見なされます。

    • 定義済み変数を使用する場合、その値を抽出し、CDN POP が転送するリクエストに追加できます。

      たとえば、$http_host 変数を選択すると、host=$http_host がリクエストヘッダーに追加されます。ここで、$http_host はユーザーリクエストの Host ヘッダーの値です。変数とその説明の一覧については、「変数名」をご参照ください。

    成功ステータスコード

    認証サーバーからの成功を示す HTTP ステータスコード。2xx ステータスコードの使用を推奨します。

    たとえば、このパラメーターを 200 に設定すると、認証サーバーからの 200 レスポンスは認証成功を示します。サーバーが成功コードでも失敗コードでもないステータスコードを返した場合、リクエストはタイムアウトとして扱われます。

    失敗ステータスコード

    認証サーバーからの失敗を示す HTTP ステータスコード。4xx ステータスコードの使用を推奨します。

    たとえば、このパラメーターを 403 に設定すると、認証サーバーからの 403 レスポンスは認証失敗を示します。サーバーが成功コードでも失敗コードでもないステータスコードを返した場合、リクエストはタイムアウトとして扱われます。

    カスタムレスポンスステータスコード

    リクエストが認証に失敗した場合に CDN POP がユーザーに返すステータスコード。

    たとえば、これを 403 に設定すると、ユーザーのリクエストが認証に失敗したときに CDN POP は 403 ステータスコードをユーザーに返します。

    タイムアウト

    CDN POP が認証サーバーからのレスポンスを待機する最大時間。

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

    タイムアウト時の動作

    認証サーバーへの認証リクエストがタイムアウトした場合に CDN POP が実行する動作。有効な値:

    • allow:タイムアウトが発生した場合、CDN POP はユーザーリクエストを許可します。

    • reject:タイムアウトが発生した場合、CDN POP は指定された [カスタムレスポンスステータスコード] をユーザーに返します。

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

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

変数名

カスタムパラメーターを追加する際に、以下の定義済み変数を使用できます。

パラメーター

説明

$http_host

リクエストの Host ヘッダーの値。

$http_user_agent

リクエストの User-Agent ヘッダーの値。

$http_referer

リクエストの Referer ヘッダーの値。

$http_content_type

リクエストの Content-Type ヘッダーの値。

$http_x_forward_for

リクエストの X-Forwarded-For ヘッダーの値。

$remote_addr

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

$scheme

リクエストのプロトコル (例:httphttps)。

$server_protocol

リクエストのプロトコルバージョン (例:HTTP/1.1)。

$uri

リクエストの元の URI。

$args

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

$request_method

リクエストメソッド。

$request_uri

クエリ文字列を含む完全なリクエスト URI (uri + ? + args)。

関連 API

BatchSetVodDomainConfigs