このガイドでは、署名の作成方法と、署名の必須フィールドとオプション フィールドについて説明します。
署名を作成するには、署名する文字列を作成します。このガイドでは、これを署名付き値と呼びます。署名された値には、保護するコンテンツ、署名された値の有効期限などを記述するパラメータが含まれます。
署名文字列を作成するときに、署名付き値を使用します。署名文字列を作成するには、署名のパラメータの非対称鍵の Ed25519 署名などを作成します。
メディア 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 を作成する
次の Python コードサンプルは、署名付き URL をプログラムで作成する方法を示しています。
必須の署名フィールド
すべての署名に次のフィールドが必要です。
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 |
リクエスト内に存在する名前付きリクエスト ヘッダー フィールド名。 ヘッダー フィールド名では大文字と小文字が区別されるため、署名時には小文字にする必要があります。メディア CDN は、署名を検証する前にヘッダーを小文字にします。 |
HeaderName=HEADER_NAME |
HeaderValue |
リクエスト内に存在する必要がある、名前付きリクエスト ヘッダー フィールド値。通常、これはユーザー ID またはその他の不透明な識別子です。HeaderValue が指定されているが HeaderName がないリクエストは拒否されます。 |
HeaderValue=HEADER_VALUE |
IPRanges |
この URL がウェブセーフな Base64 形式で有効な、CIDR 形式の最大 5 つの IPv4 アドレスと IPv6 アドレスのリスト。たとえば、IP 範囲「192.6.13.13/32,193.5.64.135/32」を指定するには クライアントが WAN を移行するリスクがある場合や、アプリケーションのフロントエンドへのネットワーク パスが配信パスと異なる場合は、署名に IP 範囲を含めると便利です。 署名付きリクエストの一部ではない IP アドレスからクライアントが接続した場合、Media CDN は
これらの要因は、再生セッション中に特定のクライアントに IP アドレスが変わる場合があります。アクセスの発行後にクライアント IP アドレスが変更され、クライアントが動画セグメントを再生バッファにダウンロードしようとすると、Media CDN から |
IPRanges=BASE_64_IP_RANGES |
URLPrefix |
アクセスを許可する base64(URL セーフ)URL 接頭辞。URLPrefix を指定すると、接頭辞に署名して、プレーヤーまたはマニフェストの生成内の複数の URL に同じクエリ パラメータを追加できます。 署名付き Cookie 形式を使用する場合は、URLPrefix が必要です。 |
URLPrefix=BASE_64_URL_PREFIX |