サードパーティ Cookie のサポート終了に備える

このガイドでは、Chrome でのサードパーティ Cookie のサポート終了に伴うアドオンへの影響と必要な変更について説明します。

概要

2024 年 1 月 4 日、Chrome はトラッキング保護機能を導入しました。これは、サードパーティ(3P)Cookie へのウェブサイト アクセスをデフォルトで 1% のユーザーに制限するものです。Chrome では、2025 年初頭サードパーティ Cookie を段階的に廃止する予定です。

Classroom アドオンでは、少なくとも次の 2 つのユーザー ジャーニーが影響を受けます。

  1. Google シングル サインオン(SSO)フロー
  2. ユーザーを新しいタブで起動する

Google SSO

Google SSO フロー中に、ユーザーは Google アカウントにログインしてデータ共有に同意するためのダイアログに移動します。

iframe 内からの SSO における 3 つの異なる Cookie コンテキストの可視化

図 1. iframe 内からの SSO における 3 つの異なる Cookie コンテキストの可視化。(1)トップレベルの Classroom アプリ、(2)サードパーティの埋め込み iframe(この場合は localhost 上の DavidPuzzle)、(3)トップレベルの OAuth ダイアログ。

一般的なアドオンの実装では、このログイン プロセスの完了時にセッション Cookie が設定されます。埋め込みコンテキストのアドオン iframe がセッション Cookie とともに再読み込みされ、ユーザーが認証済みセッションにアクセスできるようになります。ただし、サードパーティ Cookie が無効になっていると、アドオン iframe などの埋め込みコンテキストのサイトは、それぞれの最上位コンテキストから Cookie にアクセスできません。Classroom アドオンの場合、ユーザーは認証済みセッションにアクセスできず、ログイン ループから先に進まなくなります。

埋め込み iframe コンテキストでセッション Cookie を設定する実装では、この問題は CHIPS API によって軽減できます。これにより、埋め込みサイトはパーティション化された Cookie(埋め込みドメインと埋め込みドメインの両方にキーが設定された Cookie)を設定してアクセスできます。ただし、ログイン ダイアログのトップレベル コンテキストでセッション Cookie を設定する実装では、iframe 内のパーティション分割されていない Cookie にアクセスできず、ログインがブロックされます。

新しいタブ

同様の理由で、アドオン iframe に Cookie ベースの認証セッションがある場合、iframe はユーザーをアクティビティの新しい最上位タブで起動すると、最上位のタブは iframe からパーティション分割されたセッション Cookie にアクセスできません。これにより、iframe のセッション状態が新しいタブ アクティビティに保持されなくなり、たとえば、ユーザーが新しいタブで再度ログインするよう求められる場合があります。設計上、CHIPS API ではこの問題を解決できません。トップレベルのコンテキストでは、パーティション化された iframe Cookie にアクセスできません。

デベロッパーのアクション

Chrome でサードパーティ Cookie が段階的に廃止されるなか、アドオンが意図したとおりに機能し続けるように、いくつかの対応を検討する必要があります。

  1. アドオンのクリティカル ユーザー ジャーニーにおけるサードパーティ Cookie の使用監査します。具体的には、サードパーティ Cookie を無効にしてテストし、特定の実装による影響を評価します。
  2. Storage Access API を使ってみる。すべてのアドオンの実装で、Storage Access API(SAA)を調べることをおすすめします。SAA を使用すると、iframe は iframe コンテキストの外部で Cookie にアクセスできます。SAA は現在 Chrome で利用できるほか Classroom アプリでサポートされています

  3. FedCM にオプトインします。また、GIS(Google でログイン ライブラリ)を使用する場合は、Identity チームからの公式ガイダンスで FedCM にオプトインする必要があります。これはサードパーティ Cookie の機能に代わるものではありませんが、サードパーティ Cookie のサポート終了の一環として GIS でいずれ必須となります。FedCM は現在 Chrome で利用可能で、Classroom でサポートされていますが、動作と機能はまだ開発中であり、フィードバックを受け付けています。

  4. GIS に移行する。サポートが終了した GSIv2 ライブラリ(Google ログイン ライブラリとも呼ばれます)を使用している場合は、今後の GSIv2 のサポートが不明なため、GIS に移行することを強くおすすめします。

  5. 非推奨トライアルの遅延を申請する。Chrome では、広告以外のユースケースでサードパーティ Cookie のサポート終了を遅らせることができる非推奨トライアルを提供しています。承認された場合、アドオンで使用できるトークンが提供されます。これにより、2024 年までオリジンに対してサードパーティ Cookie を有効にしたまま、SAA などの長期的なソリューションに移行できます。申請の後、バグ ID または障害レポートのリンクを入力するよう求められます。Classroom アドオンについては、Google のチームがすでに報告しており、このバグを提供できます。