Mode A and Mode B

最終更新日:2024-11-18 10:19:21

こちらは、Authentication Mode AおよびBの詳細な説明と、それらの使用方法についての説明です。

認証URL構造

Authentication Mode AおよびBでは、認証情報をURLパスに直接埋め込むことができます。以下はこれら2つのモードのURL形式です。

Authentication Mode A

http://domain/<time>/<key>/uri

Authentication Mode B

http://domain/<key>/<time>/uri

これらのURL構造では、<key>および<time>が認証パラメータです。CDNエッジサーバーはこの情報を検証し、その結果に基づいて要求されたコンテンツを提供するかどうかを決定します。なお、モード AおよびBでは<key><time>の順序が固定されており、変更することはできません。

記号 <> は認証パラメータの位置を示します。これらの記号は実際のURLには表示されません。

認証URLのフィールド説明

フィールド 説明
domain CDNetworks CDNに登録されたドメイン名
time 認証URL内のタイムスタンプで、URLが生成された時刻を示します。CDNエッジサーバーはこのタイムスタンプを使用してURLがまだ有効かどうかを判断します。現在時刻がURLの有効期間を超えると、コンテンツは提供されません。
time 値は、事前に定められたタイムスタンプ形式に従わなければなりません。そうでない場合、認証に失敗します。サポートされているタイムスタンプ形式については、このドキュメントの Time Formatセクションを参照してください。
key 認証検証に使用される暗号化された署名で、通常、time スタンプ、暗号化キー(ourkey)、および実際のパス(uri)を組み合わせて生成されます。この認証パラメータの計算方法の詳細については、このドキュメントのSignature Calculation Parametersセクションを参照してください。
uri CDNからコンテンツをリクエストするURLの実際のパスです。例えば、元のリクエストURLが http://cdnetworks.com/browse/index.html の場合、uri/browse/index.html となります。リクエストURLにクエリパラメータが含まれている場合(例:/browse/index.html?user=123)、uri にはクエリ文字列を除くリクエストオブジェクトのパスのみを含める必要があります。

CDNエッジ認証ロジック

CDNエッジサーバーがリクエストを受信すると、まず認証URLの タイムスタンプ time が有効期限切れかどうかを確認します:

  • タイムスタンプ time と有効期間を加えた値が現在時刻よりも短い場合、URLは期限切れとみなされ、アクセスは拒否され、HTTP 403エラーが返されます。
  • 一方、タイムスタンプ time と有効期間を加えた値が現在時刻以上である場合、URLは有効であるとみなされます。次に、リクエストURLに対して期待される認証署名(key)を計算し、リクエスト内の署名と比較します。一致する場合、認証は成功し、コンテンツが提供されます。一致しない場合、リクエストは拒否され、HTTP 403エラーが返されます。

Mode A と Mode B の設定方法

Authentication Mode 設定で、必要に応じてMode AまたはMode Bを選択します。以下のセクションでは、各設定フィールドの目的と方法を説明します。

Authentication Key ($ourkey)

Authentication Key ($ourkey) は、URL内で認証署名キー を生成するために使用される一意の文字列です。この ourkey は、お客様と当社のCDNサーバー間でのみ共有されるため、認証パラメータのセキュリティを高め、第三者が不正に解読することを困難にします。コンソールで複数の ourkey 値を設定でき、セミコロン (;) で区切ることができます。

複数の ourkey 値が設定されている場合、CDNエッジサーバーはこれらの値を順番に使用してリクエストを認証します。最初の ourkey で認証に失敗した場合、サーバーは次の ourkey を試み、適切なキーが見つかるまで続けます。すべてのキーが失敗した場合、認証は失敗します。

Time Format

認証URLを構築するために、time フィールドには、さまざまな要件に対応する5つのオプション形式があります:

タイムスタンプ形式 説明
10進数Unixタイムスタンプ 例: 1586338211 は2020年4月8日 17:30:11 UTCを表します。
16進数Unixタイムスタンプ 例: 5e8e2463 は16進数で 1586338211 を表します。
ミリ秒単位のUnixタイムスタンプ 例: 1586338211000 は同じ時刻をミリ秒単位で表します。
YYYYMMDDHHMMSS 例: 20200408173011 は2020年4月8日 17:30:11を表します。
YYYYMMDDHHMM 例: 202004081730 は2020年4月8日 17:30を表します。

Signature Calculation Algorithm

署名 key は暗号化アルゴリズムを使用して生成されます。デフォルトでは、MD5アルゴリズムを使用します。セキュリティ向上のために異なる暗号化アルゴリズムを必要とする場合は、当社のテクニカルサポートチームにお問い合わせください。

Signature Calculation parameters

署名 key を生成するには、次のパラメータを含めることができます: timeourkey、および uri。これらの組み合わせ順序を指定します。例えば、$uri$ourkey$time のように設定すると、以下の意味になります:

  • URLリクエストアドレス(uri)が最初です。
  • 次にカスタム暗号化キー(ourkey)。
  • 最後にタイムスタンプ(time)。

例えば、URLが http://cdnetworks.com/browse/index.html で、ourkeycdnetworkstime202405131620 の場合、暗号化されていない key 文字列は /browse/index.htmlcdnetworks202405131620 となります。

Valid Time (Seconds)

認証情報の有効時間を設定するために、3つの方法を提供しています:

  • 有効期間の上限を設定する: 負でない整数(例: 60)を秒単位で入力し、URL内のtime フィールドの後の最大有効期間を設定します。例えば、60 と入力すると、リクエストURLの タイムスタンプから1分間認証情報が有効となります。
  • 有効期間の上下限を設定する: カンマで区切られた2つの値を入力します。最初の値はタイムスタンプの前の秒数(≤0)、2番目の値はタイムスタンプの後の秒数(≥0)を表します。例えば、-60,60 は、タイムスタンプの前後1分間認証情報が有効であることを意味します。
  • 有効期間の検証をしない: マイナス記号(-)を入力して有効期間のチェックを無効にします。

The positions of key and time are interchangeable

このオプションは、リクエストURLにおける keytime の位置を入れ替えることを許可するかどうかを決定します。ただし、Mode A または Mode B では、keytime の位置は固定されており、指定された順序に従わなければなりません。このため、この設定項目は Mode AおよびBでは適用されません。

URL認証設定の迅速な検証

設定エラーがオンラインビジネスに影響を与えないようにするために、まず設定をテスト環境にデプロイすることをお勧めします。設定が正確であることを確認した後にライブ環境に公式に適用します。テスト環境に設定をデプロイするための詳細なガイダンスについては、Deploy the Configurations to Staging Environment for Validationを参照してください。

さらに、CDNコンソールで利用可能なTimestamp Anti-hotlinking Calculator image.png を使用して、URL認証パラメータを生成し、設定を迅速に確認することもできます。このツールの使用方法については、Authentication URL Generatorを参照してください。