サードパーティ 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 でログイン」ライブラリ)を使用している場合は、ID チームからの公式ガイダンスに従って FedCM を有効にする必要があります。これはサードパーティ Cookie の機能に代わるものではありませんが、サードパーティ Cookie のサポート終了に伴い、GIS で最終的に必要になる予定です。FedCM は現在 Chrome で利用可能で、Classroom でサポートされていますが、動作と機能は開発中であり、フィードバックを受け付けています。

  4. GIS に移行する。非推奨の GSIv2 ライブラリ(Google ログイン ライブラリ)を使用している場合は、今後の GSIv2 のサポートが不明確であるため、GIS に移行することを強くおすすめします。

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