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

ApsaraVideo Live:アクセスコントロール

最終更新日:May 21, 2025

ApsaraVideo Live リソースを不正使用から保護するために、アクセスコントロールに URL 署名、IP アドレスブラックリストまたはホワイトリスト、リモート認証を使用することをお勧めします。これらの方法は、ApsaraVideo Live のセキュリティとユーザーエクスペリエンスを効果的に向上させることができます。

概要

アップストリーミングドメインのアクセスコントロールは、リソースのセキュリティを確保し、不正使用を防ぐための重要な手段です。以下の方法が含まれます。

  • URL 署名: URL 署名は、ホットリンク保護では完全に保護できない問題を効果的に防ぎ、各リクエストの正当性を保証します。

  • IP アドレスブラックリストまたはホワイトリスト: IP アドレスブラックリストまたはホワイトリストは、特定の IP アドレスからのアクセスを制限または許可し、訪問者の ID を識別およびフィルタリングします。

  • リモート認証: リモート認証は、ユーザーリクエストを指定された認証サーバーに転送して検証し、アクセスコントロールの柔軟性とセキュリティをさらに向上させます。

URL 署名

機能紹介

URL 署名は、ApsaraVideo Live サービスと顧客ビジネスサービスの連携を通じて、ライブストリーミングリソースを保護するための安全で信頼性の高い方法を提供します。

  1. お客様のビジネスサーバーは、認証情報を含む暗号化された URL を提供します。

  2. ユーザーは、暗号化された URL を使用して ApsaraVideo Live サービスにリクエストを送信します。

  3. ApsaraVideo Live サービスのエッジノードは、URL 内の認証情報を検証し、正当なリクエストに応答し、不正なリクエストを拒否します。

重要

リクエスト URL が ApsaraVideo Live サービスによって認証されると、URL 内の特殊文字 ( =+ など) はエスケープされます。

URL 署名のシナリオ、署名付き URL の構成、原則などの詳細については、「アップストリーミング/ストリーミング URL 認証」をご参照ください。

手順

  1. ApsaraVideo Live コンソール にログインします。
  2. 左側のナビゲーションウィンドウで、[ドメイン] をクリックします。ドメイン管理 ページが表示されます。

  3. 構成するアップストリーミングドメインを見つけ、「操作」列の ドメイン設定 をクリックします。

    域名配置

  4. [ストリーミング管理] > [アクセスコントロール] を選択します。

  5. URL 認証 タブをクリックし、設定の変更 をクリックします。

    002

    説明
    • デフォルトでは、追加するドメイン名に対して URL 署名が有効になっています。初めて URL 署名を無効にする場合は、サービスの不正使用に関連するリスクを理解し、「URL 署名の無効化に関する免責事項」に同意していることを確認してください。

    • URL 署名がすでに有効になっている場合は、[構成の変更] をクリックして、URL 署名情報を構成します。以前に URL 署名を無効にした場合は、URL 認証 スイッチをオンにして、URL 署名情報を構成します。

  6. URL 署名情報を構成し、OK をクリックします。

    URL鉴权

    次の表にパラメーターを示します。

    パラメーター

    説明

    認証タイプ

    ApsaraVideo Live アップストリーミングドメインは、オリジンサーバー上のリソースを保護するために認証タイプ A のみをサポートしています。

    説明

    URL 認証に失敗した場合は、HTTP ステータスコード 403 が返されます。この場合は、署名を再計算する必要があります。

    • 無効な MD5 値

      例: X-Tengine-Error:denied by req auth: invalid md5hash=de7bfdc915ced05e17380a149bd760be

    • 無効なタイムスタンプ

      例: X-Tengine-Error:denied by req auth: expired timestamp=1439469547

    プライマリキー

    ドメイン名を追加すると、ApsaraVideo Live はドメイン名にランダムなプライマリキーを生成します。左側のナビゲーションバーから [ドメイン] を選択し、構成するドメイン名を選択し、[ドメイン構成] > [アクセスコントロール] > [URL 署名] をクリックすることで、「URL 署名」ページでプライマリキーを表示できます。選択した認証タイプのプライマリキーを変更することもできます。

    セカンダリキー

    選択した認証方式のセカンダリキーを指定します。

    説明
    • プライマリキーとセカンダリキーは同じ効果があります。セカンダリキーは、主にスムーズな置換に使用されます。

    • プライマリキーが置き換えられると、プライマリキーで生成された署名付き URL は無効になります。置換時に古いプライマリキーをセカンダリキーに書き込むと、セカンダリキーはプライマリキーの代わりにサービスを提供し続けることができます。

    有効期間

    署名付き URL は、有効期間内にのみ、アップストリーミングまたはストリーミングリクエストを開始するために使用できます。永続的な接続は、アップストリーミングとライブストリーミングのために確立されます。有効期間内に開始されたアップストリーミングとライブストリーミングリクエストは、有効期間が経過した後もドロップされません。有効期間が経過した後は、新しいアップストリーミングとライブストリーミングリクエストを開始できません。

    追加するドメイン名の下にある署名付き URL のデフォルトの有効期間は 1 日または 1,440 分です。署名付き URL のカスタム有効期間を指定できます。

IP アドレスブラックリストまたはホワイトリスト

機能紹介

  • IP アドレスブラックリストを構成すると、ブラックリストに含まれる IP アドレスは高速化ドメイン名にアクセスできません。

  • ホワイトリストを構成すると、ホワイトリストに含まれる IP アドレスのみが高速化ドメイン名にアクセスできます。

説明
  • IP アドレスブラックリストとホワイトリストは IPv6 アドレスをサポートしています。 IPv6 アドレスの文字は大文字でなければなりません。例: 2001:DB8:0:23:8:800:200C:417A および 2001:0DB8:0000:0023:0008:0800:200C:417A。 2 つのコロングル記号(::)を使用して IPv6 アドレスを短縮することはできません。たとえば、2001:0DB8::0008:0800:200C:417A は無効です。

  • IP アドレスブラックリストとホワイトリストは CIDR ブロックをサポートしています。たとえば、192.168.0.0/24 CIDR ブロックでは、/24 はサブネットマスクの最初の 24 ビットがネットワークビットであることを示します。残りの 8 ビットはホストビットです。ホストビットの数は、次の式に基づいて計算されます。32-24 = 8。サブネットは最大 254 のホストを収容できます。ホストの数は、次の式に基づいて計算されます。2^8-2 = 254。したがって、192.168.0.0/24 は 192.168.0.1 から 192.168.0.254 までの IP アドレスを示します。

手順

  1. ApsaraVideo Live コンソール にログインします。
  2. 左側のナビゲーションウィンドウで、[ドメイン] をクリックします。ドメイン管理 ページが表示されます。

  3. 構成するアップストリーミングドメインを見つけ、「操作」列の ドメイン設定 をクリックします。

    域名配置

  4. ストリーム管理 > アクセス制御 を選択します。

  5. IP ブラックリストまたはホワイトリスト タブをクリックし、IP ブラックリストまたはホワイトリスト をオンにします。

    01

  6. リストタイプルール を構成し、[OK] をクリックします。

    配置黑白名单-chs

    タイプ

    説明

    ブラックリスト

    ブラックリストに含まれるドメイン名からのリクエストは、リソースにアクセスできません。

    ホワイトリスト

    ホワイトリストに含まれるドメイン名からのリクエストのみが、リソースにアクセスできます。

リモート認証

機能紹介

リモート認証と URL 署名はどちらも、ライブストリーミングリソースを保護するために使用され、認証に成功したユーザーのみがリソースにアクセスできるようにします。2 つのメソッドには、次のような技術的な実装の違いがあります

  • URL 署名: ユーザーはドメイン名の認証ルールをライブセンターに配布し、ライブセンターは認証のデータインタラクションプロセス全体を完了します。URL 署名: ユーザーは、ドメイン名の認証ルールを 、および 認証のデータインタラクションプロセス全体を完了します。

  • リモート認証: ユーザーは個別に構成された認証サーバーを持っています。 ライブセンター がユーザーリクエストを受信すると、認証を完了するために認証サーバーにユーザーリクエストを転送する必要があります。認証サーバーはユーザーによって 確立および管理 されます。 リモート認証は HTTP ライブストリーミングプロトコルをサポートしていません。

リモート認証機能のデータインタラクションフローは次のとおりです。

シーケンス

対話の説明

ユーザーは、認証パラメーターをリクエストに含めて、ライブセンターへのリソースアクセスリクエストを開始します。

ライブセンターは、ユーザー リクエストを受信し、認証サーバに直接転送します(または、指定されたルールに従って処理した後に転送します)。

認証サーバーは、ユーザーリクエストに含まれる認証パラメーターに基づいて認証結果を提供し、ライブセンターに返します。認証サーバーは、ユーザー リクエストに含まれる認証パラメーターに基づいて認証結果を提供し、それを

ライブセンターは、認証サーバーから返された認証結果に基づいて対応する操作を実行し、対応するデータをユーザーに返します。

  • 例 1: 認証に成功した場合、ライブセンターはユーザーとの通常のキャッシュデータ アクセスインタラクションを開始します。

  • 例 2: 認証に失敗した場合、ライブセンター はユーザーに HTTP ステータスコード 403 を返します。

  • 例 3: 認証がタイムアウトした場合、ライブセンター は認証タイムアウトのデフォルト操作を実行します。これは、ユーザー リクエストを許可または拒否することです。

手順

  1. ApsaraVideo Live コンソール にログインします。
  2. 左側のナビゲーションウィンドウで、[ドメイン] をクリックします。 ドメイン管理 ページが表示されます。

  3. 構成するアップストリーミングドメインを選択し、ドメイン設定 をクリックします。

  4. ストリーム管理 > アクセス制御 を選択します。

  5. [リモート認証] タブをクリックし、[リモート認証] スイッチをオンにし、インターフェースのプロンプトに従ってリモート認証パラメーターを構成します。

    説明

    リモート認証を有効にすると、すべてのユーザーリクエストは認証サーバーにリダイレクトされます。 多くのリクエストが CDN POP に送信される場合は、認証サーバーがパフォーマンスを損なうことなくトラフィックの急増を処理できることを確認してください。

    パラメーター

    説明

    [認証サーバーアドレス]

    認証サーバーのアドレス。 このアドレスはパブリックにアクセスできる必要があります。 システムは、入力したアドレスの形式と値が有効かどうかを確認します。 固定 URL または連結された変数 URL を指定できます。

    • 固定 URL: HTTP および HTTPS プロトコルがサポートされています。 値には、無効なローカルアドレスである 127.0.0.1 と localhost を含めることはできません。 サンプル形式:

      • http(s)://example.aliyundoc.com/auth

      • http(s)://192.0.2.1/auth

    • 連結された変数 URL: 変数を連結することで署名付き URL を構築し、その URL を認証サーバーのアドレスとして使用できます。 変数連結 URL のルールの詳細については、「変数連結 URL」をご参照ください。

    [パススルーリクエスト URL パラメーター]

    認証サーバーにチェックさせたい URL パラメーター。 [指定されたパラメーターをパススルーする][指定されたパラメーターをパススルーしない]、または [リクエスト URL パラメーターをパススルーしない] を選択できます。

    説明

    [指定されたパラメーターをパススルーする] または [指定されたパラメーターをパススルーしない] を選択した場合は、下の入力ボックスにパススルーする指定されたパラメーターを入力します。 複数のパラメーターはコンマ (,) で区切ります。例: key1,key2,key3

    [認証結果の HTTP ステータスコード]

    認証サーバーがライブセンターに返す HTTP ステータスコード。 次のいずれかのオプションを選択できます。

    • [認証成功時の HTTP ステータスコード]: このオプションを選択した後、下の入力ボックスに認証成功時のカスタム HTTP ステータスコードを入力します。 ライブセンターは、認証サーバーがこのステータスコードを返した場合にのみユーザーリクエストを許可します。 他のステータスコードが返された場合、ユーザーリクエストはブロックされます。

      たとえば、HTTP ステータスコードを 200 に設定すると、認証サーバーは認証に合格したリクエストに対して HTTP ステータスコード 200 をライブセンターに返します。

    • [認証失敗時の HTTP ステータスコード]: このオプションを選択した後、下の入力ボックスに認証失敗時のカスタム HTTP ステータスコードを入力します。 ライブセンターは、認証サーバーがこのステータスコードを返した場合にのみユーザーリクエストをブロックします。 他のステータスコードが返された場合、ユーザーリクエストは許可されます。

      たとえば、HTTP ステータスコードを 403 に設定すると、認証サーバーは認証に失敗したリクエストに対して HTTP ステータスコード 403をライブセンターに返します。

    [認証期間 (秒)]

    ライブセンターが認証を開始してから、ライブセンターが認証サーバーから認証結果を受信するまでの期間。

    有効な値: 0 から 30 までの整数。

    [認証タイムアウト再試行回数]

    指定された認証期間を超過した場合に、認証サーバーが認証を再試行する回数。 再試行回数が指定された値に達すると、「認証タイムアウトアクション」フィールドで指定されたアクションが実行されます。 [許可] または [拒否] を選択できます。

    [認証タイムアウトアクション]

    ライブセンターと認証サーバー間のデータインタラクションがタイムアウトした場合に、リクエストに対して実行するアクション。 [許可] または [拒否] を選択できます。 違いは次のとおりです。

    • [許可]: 認証がタイムアウトした場合、ライブセンターはユーザーリクエストを直接許可します。

    • [拒否]: 認証がタイムアウトした場合、ライブセンターはユーザーリクエストを拒否し、認証失敗の HTTP ステータスコード (HTTP ステータスコード 403 など) をユーザーに返します。

    [非同期認証 (詳細設定)]

    非同期認証を有効にすると、認証結果を待たずにストリームを再生できます。 後で返された結果が認証失敗を示している場合、再生は中断されます。 これは、認証結果の同期によって発生する最初のフレーム期間の増加の問題を防ぐのに役立ちます。

  6. [OK] をクリックして、パラメーター設定を完了します。

    リモート認証機能を正常に構成した後、[リモート認証] タブで現在の構成を変更したり、リモート認証機能を無効にしたりできます。

変数連結 URL

変数を連結することで署名付き URL を構築し、その URL を認証サーバーのアドレスとして使用できます。 次の表に変数を示します。

タイプ

説明

数値変数

${1}${2} などの数値変数は、アップストリーミングまたはストリーミング URL の ? の前の部分を参照するために使用されます。

たとえば、アップストリーミング URL が rtmp://domain.aliyundoc.com/appname/streamname?token=1&name=xr の場合、${1}=appname${2}=streamname となります。

アルファベット変数

${arg_token}${arg_name} などのアルファベット変数は、アップストリーミングまたはストリーミング URL の ? の後の部分を参照するために使用されます。

たとえば、アップストリーミング URL が rtmp://domain.aliyundoc.com/appname/streamname?token=1&name=xrc の場合、${arg_token}=1${arg_name}=xrc となります。

カスタム変数

カスタム変数は、udv_ プレフィックスで始まります。 現在、カスタム変数は ${udv_host}${udv_ip} をサポートしており、これらはアップストリーミングクライアントのホストと IP アドレスを参照するために使用されます。

NGX 変数

すべての ngx.var.* 変数は直接参照できます。 たとえば、${args}ngx.var.args を参照できます。

変数を通じて参照されるすべての値は、認証アドレスを連結するときに URL エスケープ関数 ngx.escape_uri によって処理され、特殊文字によるあいまいさを回避します。

ストリーム名変数

videoname=${stream_name} の形式で変数を追加できます。 ${stream_name} は、再生リクエストのストリーム名に置き換えられます。

説明

アップストリーミングまたはストリーミング URL が rtmp://domain.aliyundoc.com/app/stream?token=***&name=xrc の場合。

リモート認証サーバーアドレスが http://auth.aliyundoc.com/?app=${udv_host}&streamname=${2}&appname=${1}&token=${arg_token} として構成されている場合。

実際の認証アドレスは http://auth.aliyundoc.com/?app=domain.aliyundoc.com&streamname=stream&appname=app&token=*** になります。