ブラウザーは、クロスオリジンリソース共有(CORS)を使用して、現在のドメイン以外のドメインのリソースをリクエストします。Experience Cloud Identity Service は、これらのクライアント側のクロスオリジンリソースリクエストを可能にする CORS 標準規格をサポートしています。古いブラウザーや CORS をサポートしていないブラウザー上では、JSONP リクエストに切り替わります。
同一生成元ポリシー(同一オリジンポリシー)は、web ブラウザーによって適用されるセキュリティ制御または制限です。 このレベルで適用されると、あるページから別のページへのリソースのリクエストを許可するかブロックするかを web ブラウザー自体が決定します。 リクエストが同一生成元(オリジン)のリクエストであるかどうかを判断するために、ブラウザーは以下を比較します。
ブラウザーは、両方のページがこれらの特性を共有している場合はリクエストを成功させ、共有していない場合はリソースリクエストをブロックします。
CORS は、異なるドメインをまたいでリソースをリクエストするための安全で効果的な方法を提供します。 CORS 仕様には、ブラウザーがリソースリクエストの送信、受信、評価に使用する一連の HTTP ヘッダーが含まれています。 リソースリクエストの評価はpreflight check
と呼ばれます。 このチェックにより、ブラウザーとサーバーは、どのリクエストを許可またはブロックするかを決定できます。 プリフライトチェックは、リソースをリクエストするアプリ、API、スクリプトに対して透過的です。 リソースリクエストの処理で重要なヘッダーは次の 2 つです。
Origin
:リクエストのソースを識別するリクエストヘッダー。Access-Control-Allow-Origin
:リクエストがリクエスト元と共有できるかどうかを示す応答ヘッダー。これらのヘッダーがどのように動作するかを説明します。この例では、サイト www.finance-website.com に Experience Cloud ID サービスを実装した金融サービス会社があるとします。CORS リクエストヘッダーおよび応答ヘッダーでリソースへのアクセスをチェックする方法を次の表に示します。
アクション | 説明 |
---|---|
リクエスト |
金融会社のページが読み込まれると、ブラウザーは dpm.demdex.net に対してリクエストをおこないます。これは、ID サービスで使用するデータ収集サーバー(DCS)のドメインへの呼び出しです。 このクロスドメインリクエストには、次のヘッダーが含まれます。
|
応答 |
DCS ドメインからの応答には、必要なリソースへのアクセスを金融会社のサイトに提供する以下のヘッダーが含まれます。
|
useCORSOnly も参照してください。
ID サービスを使用する顧客にとっての CORS の利点をいくつか次の表に示します。
利点 | 説明 |
---|---|
セキュリティの向上 |
CORS では、XMLHttpRequest を使用して、データをリクエストおよび転送します。 このメソッドは、JSONP リクエストよりも安全です。 これにより、DCS からの応答に含まれている可能性のある任意の JavaScript を実行できなくなります。 CORS XMLHttpRequest 応答ペイロードは、ID サービス JavaScript によって解析され、コールバック関数で単純に実行されることはなくなります。
注意:Cookie を受け入れるために、XMLHttpRequest オブジェクトの withCredentials プロパティを true に設定する必要があります。このプロパティは、Chrome、Firefox、Internet Explorer(v10 以降)、Opera および Safari でサポートされています。 |
パフォーマンスの向上 |
次の理由で、CORS はパフォーマンスの向上に役立ちます。
|