この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Cookie 以外の方法によるユーザ追跡

Web サイトやアプリケーションを作成するときに HTML の <iframe> 要素を使用すると、現在のページウィンドウ内にサードパーティコンテンツを表示できます。最近のブラウザは、エンドユーザのプライバシーが強化されているため、iframe 構造に対する調査と制限がより厳しくなっています。キャンバスアプリケーションとして公開されるサードパーティアプリケーションは、iframe を介して Salesforce ユーザインターフェースに表示されます。Salesforce にキャンバスアプリケーションを読み込むときに問題が発生しないようにするには、アプリケーションを設計する際、ユーザの追跡に Cookie、セッションストレージ、またはローカルストレージを利用しないようにします。

以前から Cookie やその他のストレージは、アプリケーションの状態をステートレス HTTP プロトコル上に確実に追加するための手段となっています。ただし、Cookie やストレージを使用すると、アプリケーションが、予期しない方法でユーザを追跡することも可能になります。最近のブラウザは、Web 上でのプライバシーとセキュリティの強化に取り組んでいます。数年前に作成されたアプリケーションは、最近のブラウザでは同じ動作をしない場合があります。また、Salesforce などのアプリケーションによって iframe コンテナ内で使用されるときも同じ動作をしない場合があります。以前は、iframe でホストされるコンテンツは、ファーストパーティコンテキストでホストされているかのように、その専用のストレージにアクセスしていました。現在のブラウザは、iframe でホストされるコンテンツをサードパーティアプリケーションとして扱います。

サードパーティアプリケーションは、キャンバスアプリケーションとして公開される場合は、Salesforce の外部で動作します。ただし、Salesforce で iframe を介して公開される場合は、コンテンツが別のドメインから提供されるため、コンテンツの読み込みが正しく行われないことがあります。これらのアプリケーションは、Salesforce で使用されるときは、ブラウザによって追跡とユーザプライバシーの制限が課されます。��に例を示します。

  • Cookie は、ページ要求および XHR で送信されません。
  • セッションストレージとローカルストレージへのアクセスは拒否されます。
  • alert()confirm() などの JavaScript API は、ブロックされます。
開発が終わるころに問題が発生することを避けるため、早い段階でキャンバスアプリケーションを Salesforce コンテナでテストします。アプリケーションを設計する際、ユーザの追跡に Cookie、セッションストレージ、またはローカルストレージを利用しない場合は、キャンバスアプリケーションを単一ページアプリケーション (SPA) として作成します。

Cookie やストレージを使用しない副次的影響の 1 つは、複数のタブでアプリケーションにログインできない場合があることです。開発シナリオで SPA が機能しない場合は、キャンバスアプリケーションが使用されるブラウザで追跡を一時的に許可するようにユーザに依頼してください。通常、Web ブラウザの設定を変更すると、Salesforce だけではなく、すべての Web サイトに影響が及びます。Chrome および Firefox では、Cookie を常に許可する特別なドメインを追加できます。また、ユーザに同様の操作を指示することもできます。こちらの Salesforce 標準ドメインのリストを参照して、サードパーティアプリケーションのドメインを追加してください。

警告

認証での署名付き要求の使用

SPA は、キャンバスと iframe で機能します。このアプリケーションでは、ページが最初に読み込まれた後、ページレベルのナビゲーションが使用されません。代わりに、ユーザが操作を行うにつれてページが動的に書き換えられます。つまり、アプリケーションが存続している間は、同じ JavaScript 実行コンテキストが維持されます。アプリケーション内でユーザを承認するには、CanvasRequest オブジェクトを使用します。最初の要求の後、アプリケーションの認証トークンを Cookie やローカルストレージではなく、JavaScript に保存します。fetch() または XMLHttpRequest 標準 Web API を通じて、認証ヘッダーを使用する HTTPS 要求を承認します。

CanvasRequest オブジェクトについての詳細は、「署名付き要求認証」を参照してください。

単一ページアプリケーションでは、ストレージアクセス API を使用して Cookie やその他の追跡データへの一時的なアクセスを要求することもできます。この API は、明示的なユーザ操作を利用して、Cookie へのアクセスを許可します。アクセス権は、アプリケーションが移動するまで付与されます。この理由により、単一ページアプリケーションは、複数ページアプリケーションより好まれています。

ストレージアクセス API は、すべてのブラウザで使用できるわけではありません。また、その動作はブラウザごとに異なります。詳細は、「Storage Access API」を参照してください。

メモ

ブラウザの変更に関する最新情報の把握

各ブラウザは、それぞれ動作が異なります。また、Web 上のプライバシーが発展するにつれて、ブラウザの動作も積極的に変更されています。最新情報については、各ブラウザのガイドラインを参照してください。