Cookies Having Independent State(CHIPS)オリジントライアル
Chrome 100 以降、CHIPS オリジントライアルでは、トップレベル サイトごとに個別の Cookie ジャーを使用して、「パーティション化された」ストレージに Cookie をオプトインできます。
変更点
- 2022 年 6 月: Chrome 104 以降、
Partitioned
属性を使用して Cookie を設定する際にDomain
属性を省略する必要がなくなりました。 - 2022 年 5 月: Chrome 103 以降、オリジントライアルをオプトインするために
Accept-CH: Sec-CH-Partitioned-Cookies
ヘッダーを送信する必要がなくなりました。
CHIPS とは?
Cookies Having Independent State(CHIPS)は、プライバシーサンドボックスの提案であり、開発者が Cookie を「パーティション化された」ストレージにオプトし、トップレベルサイトごとに個別の Cookie ジャーを使用できるようにします。
パーティション化されたサードパーティ Cookie は、最初に設定されたトップレベルサイトに関連付けられ、他の場所からはアクセスできません。目的は、サードパーティサービスによって Cookie が設定されることを許可することですが、最初に設定されたトップレベルサイトのコンテキスト内でのみ読み取られるようにします。
オリジントライアルの対象者
このトライアルは、サードパーティ オリジントライアルとして公開されます。これにより、埋め込みコンテンツのプロバイダーは、複数のサイトで新しい機能を試すことができます。
サイトがファーストパーティとしてトライアルに登録されている場合、Cookie のパーティション機能は、そのサイトのサードパーティ コンテンツプロバイダーでも利用できます。これらのサードパーティプロバイダーは、オリジントライアルへの登録を示す追加の HTTP ヘッダーも受信する必要があります。
トライアルの実施期間
トライアルは、Chrome 100 から Chrome 105 までで利用できます。予定されているリリース日については、Chrome のリリーススケジュールを確認してください。
オリジントライアルの登録方法
前提条件
Chrome 安定版 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:
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
サイトがこのクライアントヒントなしで Cookie を受信した場合、オリジントライアルのオプトインは成功しておらず、受信している Cookie はパーティション化されていません。
Partitioned
の Set-Cookie
ヘッダーを含まないレスポンスは、サイトのオリジントライアル参加ステータスに影響しません。
有効なトークンを含む Origin-Trial
ヘッダーで応答しない場合、マシン上のパーティション化された Cookie はパーティション化されていない Cookie に変換されます。
詳細については、chromium.org の CHIPS ドキュメントをご覧ください。
DevTools
chrome://flags/#partitioned-cookies
に移動し、設定を「有効」に変更します。- 右下にある「再起動」ボタンをクリックするか、chrome://restart に移動して、Chromium を再起動します。
chrome://settings/cookies
に移動し、ラジオ ボタンが「すべての Cookie を許可する」または「シークレットモードでサードパーティの Cookie をブロックする」に設定されていることを確認します。- 埋め込みのあるサイトを読み込みます。
- DevTools を開いて「アプリケーション」>「Cookies」>あなたのサイトに移動し、DevTools で「Partition Key」列を探します。
すべてのクライアントがオリジントライアルを有効にしているわけではありません。
その他の詳細
Cookie の要件
- パーティション化された Cookie は、
Secure
とPath=/
で設定する必要があります。 SameParty
属性をPartitioned
と併用することはできません。
Chrome は、Cookie のパーティション化が有効か無効かに関係なく、Partitioned
属性で設定された Cookie にこれらのルールを適用します。正しく設定されていない Cookie は拒否されます。
Cookie のパーティション化が無効になっていても、Cookie に正しい属性が設定されている場合、Chrome は Partitioned
属性を無視し、結果の Cookie は設定された場所とは異なるトップレベルサイトのホストにリクエストで送信されます。
パーティション化された Cookie には、SameSite=None
属性も含める必要があります。これにより、Cookie のパーティション化をサポートしていないブラウザで、サードパーティのコンテキストで Cookie を送信できるようになります。
JavaScript と Service Worker
オリジントライアルにオプトインするフレームは、document.cookie
や CookieStore API などの JavaScript API を介して、パーティション化された Cookie の読み取りと書き込みにアクセスできます。トライアルのスクリプトに含まれていないフレームは、パーティション化された Cookie の読み取りも書き込みもできません。
CHIPS オリジントライアルは現在、Service Worker ではサポートされていません。
エンゲージメントとフィードバックの共有
- イシューを提起し、GitHub でのディスカッションをご覧ください。
- Privacy Sandbox Developer Support リポジトリでは、質問したり、ディスカッションに参加したりできます。
- プライバシーサンドボックスの提案に関するフィードバックを提供するためのさまざまな方法を確認してください。