Chrome 100 以降、CHIPS オリジン トライアルで Cookie を「パーティション分割」にオプトイン可能Cookie ビンをトップレベル サイトごとに分けて作成します。
変更回数
- 2022 年 9 月: オリジン トライアルを Chrome 106 まで延長することに関する最新情報をご覧ください。
- 2022 年 8 月:
path=/
の要件を削除しました(github.com/privacycg/CHIPS/pull/49 をご覧ください)。 - 2022 年 6 月: Chrome 104 以降、
Partitioned
属性を使って Cookie を設定する際にDomain
属性を省略する必要がなくなりました。 - 2022 年 5 月: Chrome 103 より、オリジン トライアルを有効にする際に
Accept-CH: Sec-CH-Partitioned-Cookies
ヘッダーを送信する必要がなくなりました。
CHIPS とは
Cookies Having Independent Partitioned State(CHIPS)は、デベロッパーが Cookie を「パーティション分割」にオプトインできるようにするプライバシー サンドボックスの提案です。Cookie の jar をトップレベル サイトごとに個別に作成します。
パーティション分割されたサードパーティ Cookie は、最初に設定された最上位のサイトに関連付けられており、他の場所からはアクセスできません。目的は、サードパーティ サービスによる Cookie 設定を許可するが、最初に設定されたトップレベル サイトのコンテキスト内でのみ Cookie を読み取らせることです。
オリジン トライアルの対象
このトライアルは、埋め込みコンテンツのプロバイダが複数のサイトで新機能を試すことができるサードパーティのオリジン トライアルとして利用できます。
サイトをファーストパーティとして試用版に登録すると、そのサイト上のすべてのサードパーティ コンテンツ プロバイダも Cookie パーティショニングを利用できます。これらのサードパーティ プロバイダは、オリジン トライアルへの登録を示す追加の HTTP ヘッダーも受信する必要があります。
トライアルの実施期間はどのくらいですか?
トライアルは Chrome 100 から Chrome 105 までご利用いただけます。リリース予定日については、Chrome のリリース スケジュールをご確認ください。
オリジン トライアルへの登録方法
前提条件
Chrome Stable 103。
手順
オリジン トライアルに登録してドメイン用のトークンを取得するには、CHIPS オリジン トライアルのページにアクセスしてください。
Partitioned
を含むSet-Cookie
ヘッダーを使用するすべてのレスポンスに、有効なトークンを含むOrigin-Trial
ヘッダーを含めます。Origin-Trial: <ORIGIN TRIAL TOKEN>
次のいずれかの方法で
Partitioned
属性を Cookie に追加します。Set-Cookie
ヘッダーの内容:Set-Cookie: __Host-name=value; Secure; Path=/; SameSite=None; Partitioned;
JavaScript の場合:
cookieStore.set({ name: '__Host-name', value: 'value', secure: true, path: '/', sameSite: 'none', // Set a partitioned cookie using the attribute below. partitioned: true, });
例
オリジン トライアルに参加するサイトのレスポンスには、次のヘッダーを含める必要があります。
Origin-Trial: <ORIGIN TRIAL TOKEN>
Set-Cookie: __Host-name=value; Secure; Path=/; SameSite=None; Partitioned;
動作を確認する
ヘッダーを検査する
オリジン トライアルに適切にオプトインし、パーティション分割 Cookie を設定した場合、現在のセッションが終了するまで、Chrome クライアントからの後続のリクエストには Sec-CH-Partitioned-Cookies: ?0
リクエスト ヘッダーが含まれます。
Sec-CH-Partitioned-Cookies: ?0
Cookie: __Host-name=value
サイトがこの Client Hints を使用せずに Cookie を受信した場合、オリジン トライアルへのオプトインは失敗し、受信する Cookie は分割されません。
Partitioned
の Set-Cookie
ヘッダーが含まれていないレスポンスは、サイトのオリジン トライアルへの参加ステータスに影響しません。
Origin-Trial
ヘッダーで有効なトークンを返さないと、マシン上のパーティション分割された Cookie はパーティション分割されていない Cookie に変換されます。
詳しくは、chromium.org の CHIPS に関するドキュメントをご覧ください。
DevTools
chrome://flags/#partitioned-cookies
に移動して、設定を [有効] に変更します。- [再起動] をクリックして Chromium を再起動しますボタンをクリックするか、chrome://restart に移動します。
chrome://settings/cookies
に移動し、ラジオボタンが [すべての Cookie を許可する] に設定されていることを確認します。[シークレット モードでサードパーティの Cookie をブロックする] を選択します。- 埋め込みのあるサイトを読み込みます。
- [Application] > [Open DevTools] を開いて、Cookie >yourSite で DevTools の [Partition Key] 列を探します。
補足情報
Cookie の要件
- パーティション化された Cookie は
Secure
で設定する必要があります。(Path=/
は不要になりました。github.com/privacycg/CHIPS/pull/49 をご覧ください)。 SameParty
属性はPartitioned.
と併用できません
Chrome では、Cookie のパーティショニングが有効か無効かにかかわらず、Partitioned
属性で設定された Cookie にこれらのルールが適用されます。正しく設定されていない Cookie は拒否されます。
Cookie のパーティショニングが無効になっていても、Cookie が正しい属性で設定されている場合、Chrome は Partitioned
属性を無視します。生成された Cookie は、設定された場所とは異なるトップレベル サイトのホストへのリクエストで引き続き送信されます。
Cookie パーティショニングをサポートしていないブラウザでも、サードパーティのコンテキストで Cookie を送信できるように、パーティション化された Cookie には SameSite=None
属性も含める必要があります。
JavaScript と Service Worker
オリジン トライアルにオプトインしたフレームは、document.cookie
や CookieStore API などの JavaScript API を使用して、パーティション分割された Cookie の読み取りと書き込みを行えます。トライアルのスクリプトに含まれていないフレームでは、パーティション化された Cookie の読み取りと書き込みはできません。
Service Worker では、CHIPS オリジン トライアルはサポートされていません。
対応してフィードバックを共有する
- GitHub で問題を報告し、ディスカッションをフォローできます。
- プライバシー サンドボックス デベロッパー サポート リポジトリで、質問したりディスカッションに参加したりできます。
- プライバシー サンドボックスの提案に関するフィードバックを提供するためのさまざまな方法を検討する。