このガイドでは、署名の作成方法と、署名の必須フィールドとオプションフィールドについて説明します。
署名を作成するには、署名する文字列を作成します。このガイドでは、これを署名付き値と呼びます。署名付き値には、保護するコンテンツ、署名付き値の有効期限などを記述するパラメータが含まれます。
署名付き値は、署名文字列の作成時に使用します。署名文字列は、署名付き値の非対称鍵 Ed25519 署名など、署名のパラメータをコンポーズして作成します。
Media CDN は、最終的な署名を使用してコンテンツを保護します。
サポートされている署名形式
Media CDN は、次の署名付きリクエスト形式をサポートしています。
形式 | 動作 | 例 |
---|---|---|
クエリ パラメータ(正確な URL) |
正確な URL: 特定の URL へのアクセス権を付与する場合に使用します。 |
Exact:
|
クエリ パラメータ(URL プレフィックス) |
URLPrefix を指定すると、接頭辞に署名して、プレーヤーまたはマニフェスト生成内の複数の URL に同じクエリ パラメータを追加できます。
|
署名する書類:
|
経路コンポーネント |
接頭辞: これにより、サブリソースを取得するときに、相対マニフェスト URL が署名付き URL コンポーネントを自動的に継承できるようになります。 |
https://media.example.com/video/edge-cache-token=Expires=EXPIRATION
|
署名付き Cookie | 接頭辞: Cookie は、署名付き URLPrefix 値で指定された接頭辞を持つ任意の URL へのアクセスを許可します。
|
Edge-Cache-Cookie:
|
署名の作成
必須署名フィールドと必要なオプション署名フィールドを含む文字列を連結して、署名付き値を作成します。
指定する場合は、
URLPrefix
を最初に配置し、Expires
、KeyName
、オプションのパラメータをその後に配置する必要があります。各フィールドとパラメータは次のように区切ります。
- Cookie の場合は、コロン(
:
)文字を使用します。 - クエリ パラメータとパス コンポーネントには、アンパサンド(
&
)文字を使用します。
- Cookie の場合は、コロン(
署名付き値に Ed25519 署名を付加します。
フィールド区切り文字(
:
または&
)を追加し、その後にSignature=
と Ed25519 署名を文字列の末尾に追加します。
署名付き URL を作成する
次のコードサンプルは、署名付き URL をプログラムで作成する方法を示しています。
Go
Media CDN に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
Media CDN に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証を設定するをご覧ください。
署名付き URL の接頭辞を作成する
次のコードサンプルは、署名付き URL 接頭辞をプログラムで作成する方法を示しています。
Go
Media CDN に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
Media CDN に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証を設定するをご覧ください。
署名付き URL Cookie を作成する
次のコードサンプルは、署名付き URL Cookie をプログラムで作成する方法を示しています。
Go
Media CDN に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
Media CDN に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証を設定するをご覧ください。
署名付きパス コンポーネントを作成する
次のコードサンプルは、署名付きパス コンポーネントをプログラムで作成する方法を示しています。
Python
Media CDN に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証を設定するをご覧ください。
必須の署名欄
すべての署名に次のフィールドが必要です。
Expires
KeyName
Signature
クエリ パラメータが存在する場合は、URL の最後のパラメータとしてグループ化する必要があります。特に指定しない限り、パラメータ名とその値では大文字と小文字が区別されます。
各パラメータについて、次の表に説明します。
フィールド名 | 署名パラメータ | 署名付きの値 |
---|---|---|
Expires |
Unix エポックからの整数の経過秒数(1970-01-01T00:00:00Z) | Expires=EXPIRATION_TIME 。この日時を過ぎると、署名は無効になります。 |
KeyName |
このリクエストの署名に使用される EdgeCacheKeyset の名前。KeyName は、キーセット自体の個々のキーではなく、キーセット全体を指します。
|
KeyName=EDGE_CACHE_KEYSET |
Signature |
署名の base64 エンコード バージョン。 | 該当なし |
オプションの署名欄
クエリ パラメータが存在する場合は、URL の最後のパラメータとしてグループ化する必要があります。特に指定しない限り、パラメータ名とその値では大文字と小文字が区別されます。
次の表に、各パラメータの名前と、オプションの署名パラメータの詳細を示します。
フィールド名 | 署名パラメータ | 署名付きの値 |
---|---|---|
HeaderName |
リクエストに存在する必要がある名前付きリクエスト ヘッダー フィールド名。 ヘッダー フィールド名では大文字と小文字が区別されるため、署名時には小文字にする必要があります。Media CDN は、署名を検証する前にヘッダーを小文字に変換します。 |
HeaderName=HEADER_NAME |
HeaderValue |
リクエストに存在する必要がある名前付きリクエスト ヘッダー フィールド値。これは通常、ユーザー ID などの不透明な識別子です。HeaderValue が指定され、HeaderName が指定されていないリクエストは拒否されます。
|
HeaderValue=HEADER_VALUE |
IPRanges |
この URL がウェブセーフ base64 形式で有効な、CIDR 形式の IPv4 アドレスと IPv6 アドレスのリスト(最大 5 つ)。たとえば、IP 範囲「192.6.13.13/32,193.5.64.135/32」を指定するには、 クライアントが WAN 移行の危険にさらされている場合や、アプリケーション フロントエンドへのネットワーク パスが配信パスと異なる場合は、IPRanges を署名に含めることは役に立ちません。
署名付きリクエストに含まれていない IP アドレスに接続すると、Media CDN は 以下のような場合、Media CDN は
これらの要因はすべて、動画再生セッション中に特定のクライアントが確定的でない IP アドレスを持つ原因となります。アクセスの発行後にクライアント IP アドレスが変更され、クライアントが動画セグメントを再生バッファにダウンロードしようとすると、Media CDN から |
IPRanges=BASE_64_IP_RANGES |
URLPrefix |
アクセス権を付与する base64(URL セーフ)URL 接頭辞。URLPrefix を指定すると、接頭辞に署名して、プレーヤーまたはマニフェスト生成内の複数の URL に同じクエリ パラメータを追加できます。
署名付き Cookie 形式を使用する場合、URLPrefix が必要です。
|
URLPrefix=BASE_64_URL_PREFIX |