最終更新日:2024-11-18 10:20:55
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を参照してください。