為第三方 Cookie 淘汰預做準備

本指南可協助您瞭解Chrome 停止支援第三方 Cookie 對外掛程式造成的影響,以及需要進行的變更。

總覽

Chrome 已於 2024 年 1 月 4 日推出追蹤保護功能,針對 1% 的使用者,根據預設限制網站存取第三方 Cookie。Chrome 預計在 2025 年初全面淘汰第三方 Cookie

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

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

Google 單一登入 (SSO)

在 Google 單一登入流程中,使用者會前往對話方塊登入 Google 帳戶,並同意分享資料。

從 iframe 內進行 SSO 時,三種不同 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。SAA 現已在 Chrome 中推出,並支援 Classroom 應用程式。

  3. 選擇採用 FedCM。此外,如果您使用 GIS 和「使用 Google 帳戶登入」程式庫,身分團隊的官方指引是選擇加入 FedCM。這項功能不會取代第三方 Cookie 功能,但最終會成為 GIS 的必要功能,以因應第三方 Cookie 淘汰作業。Chrome 目前已支援 FedCM,Classroom 也支援這項功能,但相關行為和功能仍在開發階段,歡迎提供意見。

  4. 遷移至 GIS。如果您使用已淘汰的 GSIv2 程式庫 (又稱 Google 登入程式庫),強烈建議遷移至 GIS,因為我們不確定未來是否會繼續支援 GSIv2。

  5. 申請延後淘汰試用期。Chrome 提供淘汰試用計畫,讓非廣告用途延後受到第三方 Cookie 淘汰的影響。如果申請獲准,您會取得權杖,可在外掛程式中使用,在 2024 年前為來源啟用第三方 Cookie,同時遷移至 SAA 等長期解決方案。申請後,系統會要求你提供錯誤 ID 或中斷報告的連結。我們的團隊已為 Classroom 外掛程式提出這項要求,您可以提供這個錯誤