Mode C and Mode D

最終更新日:2026-04-22 17:42:03

Topics

このドキュメントでは、Authentication Mode C および D について詳しく説明し、それらの使用方法に関する手順を提供します。

Authentication URL Structure

Authentication Mode C および D を使用すると、認証情報を URL のリクエストパラメータとして埋め込むことができます。これら 2 つのモードの URL 形式は以下の通りです:

Authentication Mode C

http://domain/uri?key=signature&time=timestamp

Authentication Mode D

http://domain/uri?time=timestamp&key=signature

これらの URL 構造において、key は認証署名を表し、time は URL が生成されたときのタイムスタンプです。これらの認証パラメータは URL に追加され、CDN エッジサーバーはそれらを検証して、リクエストされたコンテンツを提供するかどうかを決定します。Authentication Mode A および B と同様に、一度設定すると keytime の順序は固定され、クライアントのリクエストは指定された順序でこれらのパラメータを含める必要があります。そうでない場合、CDN エッジサーバーはリクエストを拒否します。

Mode C および D では、keytime は名前をカスタマイズできるリクエストパラメータです。これらの認証パラメータの名前を変更する手順については、Signature Parameter Name および Timestamp Parameter Name セクションを参照してください。

Explanation of Fields in the Authentication URL

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

How the Authentication Works on CDN Edge Servers

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

  • タイムスタンプ time に有効期間を加えた値が現在の時間よりも小さい場合、URL は期限切れと見なされ、アクセスは拒否され、HTTP 403 エラーが返されます。
  • 逆に、タイムスタンプ time に有効期間を加えた値が現在の時間以上である場合、CDN エッジサーバーは URL が有効であると見なします。次に、リクエスト URL の期待される認証署名 (key) を計算し、リクエスト内の署名と比較します。それらが一致すれば認証は成功し、サーバーはコンテンツのリクエストに応じます。そうでない場合、リクエストは拒否され、HTTP 403 エラーが返されます。

How to Configure Mode C and Mode D

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

Secret Key ($ourkey)

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

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

Timestamp Format

認証 URL を構築するために、time フィールドには多様な要件に対応する 5 つのオプション形式が用意されています:

Timestamp Format Description
Decimal Unix Timestamp 例:1586338211 は 2020年4月8日 17:30:11 UTC を表します。
Hexadecimal Unix Timestamp 例:5e8e24631586338211 の 16進数を表します。
UNIX timestamps in milliseconds 例:1586338211000 は同じ時点を表します。
YYYYMMDDHHMMSS 例:20200408173011 は 2020年4月8日 17:30:11 を表します。
YYYYMMDDHHMM 例:202004081730 は 2020年4月8日 17:30 を表します。

Signature Algorithm

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

Signature Parameters

認証署名 key を生成するために、任意で timeourkey、および uri のパラメータを含めることができます。これらのフィールドの詳細な説明については、前のドキュメント Explanation of Fields in the Authentication URL を参照してください。

暗号化する文字列 key を構築するプロセスで、上記のパラメータの 1 つ以上を含めることを選択し、それらの組み合わせの順序を指定できます。たとえば、組み合わせの順序として $uri$ourkey$time を選択した場合、以下の意味になります:

  • URL リクエストアドレス (uri) が開始部分になります。
  • 続いて、カスタム暗号化キー (ourkey) が配置されます。
  • そして最後に、タイムスタンプ (time) が配置されます。

たとえば、URL が http://cdnetworks.com/browse/index.htmlourkeycdnetworkstime202405131620 の場合、生成される暗号化前の文字列 key/browse/index.htmlcdnetworks202405131620 になります。

Signature Parameter Name

これは URL 内の認証署名パラメータの名前を指し、システムではデフォルトで key に設定されています。たとえば、Mode C では次のようになります:

http://domain/uri?key=signature&time=timestamp

必要に応じてこの名前をカスタマイズできます。たとえば cdnwkey に設定した場合、ユーザーは CDN エッジサーバーにコンテンツをリクエストする際、URL 内で key=abc の代わりにクエリパラメータ cdnwkey=abc を使用できます。

Timestamp Parameter Name

これは URL 内のタイムスタンプパラメータを指し、システムではデフォルトで time という名前になっています。このパラメータ名も必要に応じてカスタマイズできます。たとえば cdnwtime に設定した場合、ユーザーは CDN エッジサーバーにコンテンツをリクエストする際、URL 内のタイムスタンプを表すために time=123 の代わりにクエリパラメータ cdnwtime=123 を使用できます。

Expiration Time (Seconds)

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

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

Allow Signature and Timestamp in Any Order

デフォルトでは、Mode C および D において、URL 内の認証署名とタイムスタンプ (keytime パラメータ) の位置は固定されており、認証モードの指定された順序に従う必要があります。このオプションを Yes に設定すると、それらの位置を入れ替えることができます。

たとえば、以下の 2 つの URL は CDN エッジサーバーによって認証されたと見なされ、コンテンツがクライアントに提供されます:

http://cdnetworks.com/browse/index.html?key=abc&time=123

http://cdnetworks.com/browse/index.html?time=123&key=abc

Quick Verify if the Token Authentication Configuration is Correct

オンラインビジネスに影響を与えるエラーを避けるために、まずはステージング環境に設定をデプロイすることをお勧めします。設定が正確であることが確認されたら、本番環境に正式に実装できます。ステージング環境への設定のデプロイに関する詳細については、チュートリアル Deploy the Configurations to Staging Environment for Validation を参照してください。

さらに、CDN コンソールで利用可能な Token Generator を使用してトークン認証パラメータを生成し、設定をすばやく検証することもできます。詳細については、ドキュメント Token Generator を参照してください。