為第三方 Cookie 淘汰預做準備

本指南可協助您瞭解 Chrome 停止支援第三方 Cookie 所導入的外掛程式,這將帶來哪些影響和必要變更。

總覽

Chrome 於 2024 年 1 月 4 日推出了追蹤保護功能,限制只有 1% 的使用者能存取第三方 (第三方) Cookie。Chrome 預計將於 2025 年初全面逐步淘汰第三方 Cookie

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

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

Google 單一登入 (SSO)

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

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

圖 1 以視覺化方式呈現 iframe 中的三個不同 Cookie 結構定義:(1) 頂層 Classroom 應用程式、(2) 嵌入的 iframe (在本例中為 localhost 的 DavidPuzzle),以及 (3) 頂層 OAuth 對話方塊。

在一般的外掛程式實作中,系統會在此登入程序結束時設定工作階段 Cookie。位於內嵌結構定義中的外掛程式 iframe 會重新載入,現在具備工作階段 Cookie,讓使用者可以存取其已驗證的工作階段。不過,停用第三方 Cookie 後,嵌入式結構定義 (例如外掛程式 iframe) 中的網站就無法從各自的頂層結構定義存取 Cookie。對於 Classroom 外掛程式,使用者無法存取已通過驗證的工作階段,並卡在登入迴圈中。

對於在嵌入的 iframe 情境中設定工作階段 Cookie 的實作,可透過 CHIPS API 減輕這個問題,這個 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。目前 Chrome 支援 SAA,Classroom 應用程式提供支援。

  3. 選擇加入 FedCM。此外,如果使用 GIS (「使用 Google 帳戶登入」程式庫),Identity 團隊的官方指引就是選擇加入 FedCM。這不會取代第三方 Cookie 功能,但第三方 Cookie 淘汰後,最終必須在 GIS 內使用。目前 Chrome 已經支援 FedCM,Classroom 已支援 FedCM,但其行為和功能仍在開發階段,歡迎提供意見回饋。

  4. 遷移至 GIS。如果您使用已淘汰的 GSIv2 程式庫 (又稱為 Google 登入程式庫),強烈建議您遷移至 GIS,因為未來無法支援 GSIv2。

  5. 申請提前淘汰試用服務。Chrome 提供淘汰試用服務,允許非廣告用途延後淘汰第三方 Cookie 的影響。接受審查後,我們會提供權杖,讓您可在 2024 年之前在外掛程式中讓來源保持啟用第三方 Cookie,同時改用 SAA 等長期解決方案。套用後,系統會要求您提供中斷報告的錯誤 ID 或連結。我們的團隊已經針對 Classroom 外掛程式提交此問題,您可以提供這個錯誤