Experience Cloud Identity Service での CORS のサポート

ブラウザーは、クロスオリジンリソース共有(CORS)を使用して、現在のドメイン以外のドメインのリソースをリクエストします。Experience Cloud Identity Service は、これらのクライアント側のクロスオリジンリソースリクエストを可能にする CORS 標準規格をサポートしています。古いブラウザーや CORS をサポートしていないブラウザー上では、JSONP リクエストに切り替わります。

同一オリジンポリシーと ID サービスリクエストの問題

同じ接触チャネルポリシーとは、Webブラウザーによって適用されるセキュリティ制御または制限です。 このレベルで適用される場合、Webブラウザー自体は、あるページから別のページに対して行われたリソースのリクエストを許可するかブロックするかを決定します。 リクエストが同じ接触チャネルのリクエストであるかどうかを判断するために、ブラウザーは次を比較します。

  • Uniform Resource Identifier(URI)
  • ホスト名(例:http://www.my-webpage-example.com)
  • ポート番号(例:HTTPおよびHTTPS要求の場合はポート80および440)

両方のページがこれらの特性を共有している場合、ブラウザーはリクエストの成功を許可し、共有していない場合はリソースリクエストをブロックします。

同じ接触チャネルポリシーの問題を解決するCORS

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)のドメインへの呼び出しです。 このクロスドメインリクエストには、次のヘッダーが含まれます。

  • Origin: https://www.finance-website.com

応答 

DCSドメインからの応答には、金融会社のサイトに必要なリソースへのアクセスを与える以下のヘッダーが含まれます。

  • Access-Control-Allow-Origin: https://www.finance-website.com
  • Access-Control-Allow-Credentials: true

useCORSOnly も参照してください。

CORS を使用することのその他のメリット

次の表に、IDサービスを使用する顧客にとってCORSがもたらす利点の一部を示します。

メリット 説明

セキュリティの向上

CORSは、XMLHttpRequest を使用してデータをリクエストおよび転送します 。 この方法は、JSONPリクエストよりも安全です。 DCSからの応答に含まれている可能性のある、任意のJavaScriptを実行する方法がないことを保証します。 CORS XMLHttpRequest応答ペイロードは、IDサービスJavaScriptによって解析され、単純にコールバック関数で実行されるわけではありません。

注意:Cookie を受け入れるために、XMLHttpRequest オブジェクトの withCredentials プロパティを true に設定する必要があります。このプロパティは、Chrome、Firefox、Internet Explorer(v10以降)、OperaおよびSafariでサポートされます。

パフォーマンスの向上

次の理由で、CORSはパフォーマンスの向上に役立ちます。

  • ブラウザーは、リソースリクエストを管理します。 要求プロセスは、IDサービスに対して透過的です。
  • 非同期JSONPリクエストとは異なり、ブラウザーはCORSリクエストの優先順位を下げたりキューに登録したりしません。
  • IDサービスは、許容的に応答します。 これは、URL が Origin として渡された場合に、ID サービスは必要なリソースに対するアクセスをページに付与することを意味します。

このページ