ライブストリームにおける署名付き URL とトークン認証

このトピックでは、適切な認証なしにエンドユーザーがライブストリームを再生できないようにするため、署名付き URL とトークン認証を使用する方法について説明します。

概要

プレミアム コンテンツや機密性の高いコンテンツを配信する場合、そのセキュリティを確保するためのあらゆる方法を検討する必要があります。エンドユーザーが動画 URL をコピーしたり、適切な認証なしにコンテンツを再生し続けることを防ぐ必要があります。Brightcove は RTMP、HLS、DASH URL の署名をサポートしています。

独自にトークンを生成する場合は 1 ステップのみで完了します。Live システムにトークン付き URL を生成させる場合は、後述する 2 つのステップを実行してライブストリーム用のトークン認証を有効にする必要があります。

実装

ステップ 1: ライブジョブの作成

トークン認証を有効にするには、ジョブを作成する際、リクエスト ボディに以下を含めます:

        "add_cdns": [{
          "label": "My CDN",
          "prepend": "mycdn-a.akamaihd.net",
          "protocol": "https",
          "vendor": "akamai",
          "token_auth": {
            "auth_type": "Akamai2.0",
            "key": "AKAMAI_TOKEN_PASSWORD",
            "token_name": "AKAMAI_TOKEN_NAME",
            "media": {
              "start_time": "now",
              "end_time": 1495697388,
              "ttl": 60
            }
          }
        }]

関連するフィールドの説明は以下の表のとおりです:

ライブジョブの TTL フィールド
フィールド
start_time now または UNIX/POSIX 開始時刻
end_time UNIX/POSIX 終了時刻
ttl 有効期間(秒)

ステップ 2: ライブジョブ作成後

ライブジョブの作成後、マスターマニフェスト URL を生成するために別のリクエストを送信する必要があります。以下のエンドポイントに POST リクエストを送信します:

        https://api.bcovlive.io/v1/jobs/JOB_ID/authurls

リクエストボディには次の JSON を含めます:

        {
          "ttl": number in seconds for time to live
        }

注意事項

  • 上記の両ステップにおける ttl の値は、DVR ウィンドウ以上である必要があります。そうでない場合、DVR ウィンドウは ttl の値に制限されます。
  • http および https がサポートされています。
  • token_name は 5〜12 文字で、Akamai に設定されている値と一致している必要があります。
  • start_time は任意で、"now"(デフォルト)またはエポック秒を指定できます。
  • end_time も任意で、エポック秒を指定できます。end_time または ttl のいずれかが必須で、指定されていない場合 ttllive_dvr_sliding_window_durationvod_sliding_window_duration のうち大きい値が使用されます。