為第三方 Cookie 淘汰預做準備

本指南可協助您瞭解 Chrome 停止支援第三方 Cookie 對外掛程式的影響和必要變更。

總覽

Chrome 在 2024 年 1 月 4 日推出了追蹤保護功能,預設會限制網站存取第三方 Cookie 的使用者,僅開放 1% 的使用者存取。Chrome 預計在 2025 年初逐步淘汰第三方 Cookie

Classroom 外掛程式至少有兩種使用者歷程受到影響:

  1. Google 單一登入 (SSO) 流程
  2. 讓使用者開啟新分頁

Google 單一登入 (SSO)

在 Google 單一登入 (SSO) 流程中,系統會將使用者導向登入 Google 帳戶的對話方塊,並同意共用資料。

以視覺化方式呈現 iframe 執行單一登入 (SSO) 期間的三種不同 Cookie 情境

圖 1 透過 iframe 內執行單一登入 (SSO) 期間,以視覺化方式呈現三種不同的 Cookie 情境:(1) 頂層 Classroom 應用程式、(2) 第三方嵌入式 iframe (在此案例中為 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 帳戶登入」程式庫),身分團隊的官方指引會選擇加入 FedCM。這不會取代第三方 Cookie 功能,但最終在第三方 Cookie 淘汰後,GIS 必須使用該功能。目前 Chrome 已在 Chrome 中使用 FedCM,但 Classroom 仍支援 FedCM,但行為和功能仍在開發階段,歡迎提供寶貴意見。

  4. 遷移至 GIS。如果您使用已淘汰的 GSIv2 程式庫 (又稱為 Google 登入資料庫),強烈建議您改用 GIS,因為日後無法對 GSIv2 提供支援。

  5. 申請延後淘汰試用期。Chrome 提供淘汰試用計畫,允許非廣告用途延後淘汰第三方 Cookie 造成的影響。如果獲準加入,就會取得可在外掛程式中使用的權杖,以便在 2024 年之前為來源啟用第三方 Cookie,同時遷移至 SAA 等長期解決方案。申請完成後,系統會請您提供故障報告的錯誤 ID 或連結。我們團隊已為 Classroom 外掛程式提交這個項目,但您可以提供這個錯誤