Mode C and Mode D

最終更新日:2024-11-18 10:20:55

話題


このドキュメントは、Authentication Mode CおよびDの詳細な説明とその使用方法について説明します。

認証URL構造と説明

Authentication Mode CおよびDでは、URLに認証情報をリクエストパラメータとして埋め込むことができます。以下はこれら二つのモードの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エッジサーバーはこの情報を検証し、要求されたコンテンツを提供するかどうかを決定します。認証モードAおよびBと同様に、設定後はkeytimeの順序は固定され、クライアントのリクエストはこの順序に従う必要があります。そうでない場合、CDNエッジサーバーはリクエストを拒否します。

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

認証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 C および Mode Dの認証設定方法

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

設定画像

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のパラメータを選択的に含めることができます。これらのフィールドの詳細な説明については、前のドキュメント認証URLのフィールド説明を参照してください。

暗号化された文字列keyを生成する過程で、上記のパラメータの一つまたは複数を含め、組み合わせ順序を指定できます。例えば、組み合わせ順序を$uri$ourkey$timeとして選択すると、次のことを意味します:

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

例えば、URLがhttp://cdnetworks.com/browse/index.htmlで、ourkeycdnetworkstime202405131620の場合、生成される暗号化されていない文字列keyは`/browse/index.htmlcdnetworks202405131620

`となります。

Signature Parameter Name

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

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

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

Timestamp Parameter Name

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

Valid Time (Seconds)

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

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

Key and Time Positions Interchangeable

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

例えば、次の二つのURLはCDNエッジサーバーによって認証され、クライアントにコンテンツが提供されます:

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

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

URL認証設定の迅速な検証

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

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