最終更新日:2025-04-22 17:09:52
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と同様に、設定後はkeyとtimeの順序は固定され、クライアントのリクエストはこの順序に従う必要があります。そうでない場合、CDNエッジサーバーはリクエストを拒否します。
モードCおよびDでは、
keyとtimeの名前をカスタマイズできます。これらの認証パラメータの名前を変更する方法については、Signature Parameter NameおよびTimestamp Parameter Nameセクションを参照してください。
| フィールド | 説明 |
|---|---|
| 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エッジサーバーがリクエストを受信すると、まず認証URLの タイムスタンプ time が有効期限切れかどうかを確認します:
time と有効期間を加えた値が現在時刻よりも短い場合、URLは期限切れとみなされ、アクセスは拒否され、HTTP 403エラーが返されます。time と有効期間を加えた値が現在時刻以上である場合、URLは有効であるとみなされます。次に、リクエストURLに対して期待される認証署名(key)を計算し、リクエスト内の署名と比較します。一致する場合、認証は成功し、コンテンツが提供されます。一致しない場合、リクエストは拒否され、HTTP 403エラーが返されます。Authentication Mode設定で、必要に応じてMode CまたはMode Dを選択します。次のセクションでは、各設定フィールドの目的と方法を説明します。

Authentication Key ($ourkey) は、URL内で認証署名キー を生成するために使用される一意の文字列です。この ourkey は、お客様と当社のCDNサーバー間でのみ共有されるため、認証パラメータのセキュリティを高め、第三者が不正に解読することを困難にします。コンソールで複数の ourkey 値を設定でき、セミコロン (;) で区切ることができます。
複数の ourkey 値が設定されている場合、CDNエッジサーバーはこれらの値を順番に使用してリクエストを認証します。最初の ourkey で認証に失敗した場合、サーバーは次の ourkey を試み、適切なキーが見つかるまで続けます。すべてのキーが失敗した場合、認証は失敗します。
認証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を表します。 |
署名keyは暗号化アルゴリズムを使用して生成されます。デフォルトではMD5アルゴリズムを使用します。セキュリティ強化のために他の暗号化アルゴリズムが必要な場合は、技術サポートチームにお問い合わせください。
署名keyを生成するには、time、ourkey、およびuriのパラメータを選択的に含めることができます。これらのフィールドの詳細な説明については、前のドキュメント認証URLのフィールド説明を参照してください。
暗号化された文字列keyを生成する過程で、上記のパラメータの一つまたは複数を含め、組み合わせ順序を指定できます。例えば、組み合わせ順序を$uri$ourkey$timeとして選択すると、次のことを意味します:
uri)が開始部分です。ourkey)です。time)です。例えば、URLがhttp://cdnetworks.com/browse/index.htmlで、ourkeyがcdnetworks、timeが202405131620の場合、生成される暗号化されていない文字列keyは`/browse/index.htmlcdnetworks202405131620
`となります。
これは、URL内の認証署名パラメータの名前を指し、デフォルトではkeyに設定されています。例えば、モードCでは次のようになります:
http://domain/uri?key=signature&time=timestamp
必要に応じてこの名前をカスタマイズできます。例えば、この名前をcdnwkeyに設定すると、ユーザーはURLでkey=abcの代わりにクエリパラメータcdnwkey=abcを使用してCDNエッジサーバーからコンテンツをリクエストできます。
タイムスタンプパラメータ名はURL内のタイムスタンプパラメータを指し、デフォルトではtimeに設定されています。必要に応じてこのパラメータ名をカスタマイズできます。例えば、この名前をcdnwtimeに設定すると、ユーザーはURLでtime=123の代わりにクエリパラメータcdnwtime=123を使用してCDNエッジサーバーからコンテンツをリクエストできます。
認証情報の有効時間を設定するために、3つの方法を提供します:
60)を秒単位で入力し、URL内のtime フィールドの後の最大有効期間を設定します。例えば、60 と入力すると、リクエストURLの タイムスタンプから1分間認証情報が有効となります。-60,60はタイムスタンプ前後1分間認証情報が有効であることを意味します。-)を入力して有効期間の検証を無効にします。デフォルトでは、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
設定エラーがオンラインビジネスに影響を与えないようにするために、まず設定をテスト環境にデプロイすることをお勧めします。設定が正確であることを確認した後にライブ環境に公式に適用します。テスト環境に設定をデプロイするための詳細なガイダンスについては、Deploy the Configurations to Staging Environment for Validationを参照してください。
さらに、CDNコンソールで利用可能なTimestamp Anti-hotlinking Calculator
を使用して、URL認証パラメータを生成し、設定を迅速に確認することもできます。このツールの使用方法については、Authentication URL Generatorを参照してください。