Federated Credential Management API 已在 Chrome 108 中推出,但我們預計會持續改良。我們沒有規劃任何破壞性變更。
有哪些最新消息?
如果符合以下情況,就適合使用更新功能:
- 您是使用 Federated Credential Management API 的 IdP。
- 您是 IdP 或 RP,且有興趣擴充 API 以滿足您的用途。例如,您持續觀察或參與 FedID CG 存放區的討論,並想瞭解對 API 所做的變更。
- 您是瀏覽器廠商,想要瞭解 API 的實作狀態。
如果您是第一次使用這個 API,或尚未試用過這個 API,請參閱 Federated Credential Management API 簡介。
變更記錄
如要掌握 FedCM API 的最新異動,請查看我們的網誌或電子報。
Chrome 125 (2024 年 4 月)
- 由於這個規格已將「帳戶清單端點」的名稱更新為「帳戶端點」,因此我們的說明文件會據此保持一致。
- Button Mode API 的來源試用適用於 Chrome 電腦版 125。詳情請參閱 FedCM 更新:Button Mode API 來源試用、CORS 和 SameSite。
- CORS 會從 Chrome 125 開始在 ID 斷言端點上強制執行。
- Chrome 只會將明確標示為
SameSite=None
的 Cookie 傳送至 ID 宣告端點和從 Chrome 125 開始的帳戶端點。
Chrome 123 (2024 年 2 月)
- 開始支援 Domain Hint API。Domain Hint API 可讓 RP 在 FedCM API 呼叫中指定
domainHint
屬性,只顯示使用者相符的帳戶。
Chrome 122 (2024 年 1 月)
- 新增對中斷連線 API 的支援功能。Connected API 可讓 RP 中斷使用者與 IdP 的帳戶連線,而不必依賴第三方 Cookie。
- 現在,如果 RP 和 IdP 位於相同,系統就會略過檢查
/.well-known/web-identity
。 - 子資源現在可以設定相同網站的登入狀態。
Chrome 121 (2023 年 12 月)
- 觸發 FedCM 自動重新驗證的寬鬆條件:
- 只有在使用者返回時,FedCM 中的自動重新驗證功能才會觸發。這表示使用者必須在每個瀏覽器執行個體上使用 FedCM 登入 RP 一次,才能觸發自動重新驗證。這個狀況最初引進這個狀況,可降低追蹤器偽裝成識別資訊提供者 (IdP) 的風險,並誘騙瀏覽器在使用者不知情或未同意的情況下,進行自動重新驗證。不過,如果追蹤器可在 RP 情境下存取第三方 Cookie,此設計無法保證隱私權也能因此受益。FedCM 只提供透過第三方 Cookie 實現的部分功能,因此如果追蹤器已能存取 RP 內容上的第三方 Cookie,FedCM 的存取權就不會產生額外的隱私權風險。
由於第三方 Cookie 有正當使用行為,並放寬條件將改善使用者體驗,因此這項行為將從 Chrome 121 版開始調整。我們已決定放寬將使用者視為回訪的條件限制:如果 IdP 對 RP 內容上的 IdP 可以使用第三方 Cookie,Chrome 就會信任 IdP 透過approved_clients
清單指定的使用者帳戶狀態憑證,並在適用的情況下觸發自動重新驗證。第三方 Cookie 可透過使用者設定、企業政策、經驗法則 (Safari、Firefox、Chrome) 和其他網路平台 API (例如 Storage Access API) 存取。請注意,當 IdP 日後失去第三方 Cookie 存取權時,如果使用者從未在 FedCM UI 上明確授予權限 (例如按一下「繼續為」按鈕),系統仍會將這類 Cookie 視為新使用者。
開發人員無須採取任何行動。請注意,如果 IdP 具有第三方 Cookie 存取權,並聲稱使用者先前已在 RP 上建立帳戶,則這項變更可能會更觸發自動重新驗證流程。
- 只有在使用者返回時,FedCM 中的自動重新驗證功能才會觸發。這表示使用者必須在每個瀏覽器執行個體上使用 FedCM 登入 RP 一次,才能觸發自動重新驗證。這個狀況最初引進這個狀況,可降低追蹤器偽裝成識別資訊提供者 (IdP) 的風險,並誘騙瀏覽器在使用者不知情或未同意的情況下,進行自動重新驗證。不過,如果追蹤器可在 RP 情境下存取第三方 Cookie,此設計無法保證隱私權也能因此受益。FedCM 只提供透過第三方 Cookie 實現的部分功能,因此如果追蹤器已能存取 RP 內容上的第三方 Cookie,FedCM 的存取權就不會產生額外的隱私權風險。
Chrome 120 (2023 年 11 月)
- 在 Chrome 120 中新增對下列三項功能的支援:
- Login Status API:Login Status API 是一種機制,可讓網站 (尤其是 IdP) 通知瀏覽器使用者的登入狀態。透過這個 API,瀏覽器可以減少對 IdP 的非必要要求,並減輕潛在的時間攻擊。使用 FedCM 時必須使用 Login Status API。這項變更實施後,當第三方 Cookie 遭到封鎖後,不再需要啟用
chrome://flags/#fedcm-without-third-party-cookies
旗標就能啟用 FedCM。 - Error API:Error API 會顯示瀏覽器 UI 和 IdP 提供的錯誤資訊,藉此通知使用者。
- Auto-Selected Flag API:Auto-Selected Flag API:每當自動重新驗證發生或明確中介服務發生時,輕觸 IdP 和 RP 的「Continue as」按鈕,即可分享是否已取得明確的使用者權限。只有在授予 IdP 與 RP 通訊的使用者授權後,系統才會共用內容。
- Login Status API:Login Status API 是一種機制,可讓網站 (尤其是 IdP) 通知瀏覽器使用者的登入狀態。透過這個 API,瀏覽器可以減少對 IdP 的非必要要求,並減輕潛在的時間攻擊。使用 FedCM 時必須使用 Login Status API。這項變更實施後,當第三方 Cookie 遭到封鎖後,不再需要啟用
Chrome 117 (2023 年 9 月)
- Android 裝置自 Chrome 117 起開始支援 Idp Sign-In Status API 的來源試用。詳情請參閱 FedCM 更新:IdP Sign-In Status API、Login Hint 等。
Chrome 116 (2023 年 8 月)
- 已在 Chrome 116 中新增對下列三項功能的支援:
- Login Hint API:指定要登入的偏好使用者帳戶。
- User Info API:擷取回訪者的資訊,讓識別資訊提供者 (IdP) 在 iframe 中轉譯個人化登入按鈕。
- RP Context API:在 FedCM 對話方塊中使用與「登入」不同的標題。
- IdP Sign-In Status API 的來源試用可以使用。詳情請參閱 FedCM 更新:IdP Sign-In Status API、Login Hint 等。
Chrome 115 (2023 年 6 月)
- 新增自動重新驗證功能,讓使用者在使用 FedCM 進行初次驗證後,自動重新驗證。這麼做可改善使用者體驗,並讓使用者在取得初始同意聲明後,能更輕鬆地重新驗證 RP。進一步瞭解 FedCM 自動重新驗證。
Chrome 110 (2023 年 2 月)
- 如果是 ID 斷言端點,IdP 需要檢查
Origin
標頭 (而不是Referer
標頭),確認值是否與用戶端 ID 的來源相符。 - FedCM 的跨來源 iframe 支援功能現已推出。嵌入器應指定 Permissions-Policy
identity-credentials-get
,允許 FedCM API 出現在內嵌的跨來源 iframe 中。您可以查看跨來源 iframe 的範例。 - 已新增 Chrome 標記
chrome://flags/#fedcm-without-third-party-cookies
。這個標記可封鎖第三方 Cookie,藉此測試 Chrome 的 FedCM 功能。詳情請參閱 FedCM 說明文件。
Chrome 108 (2022 年 10 月)
- 「頂層資訊清單」在文件中現已改稱「已知檔案」。 這不需要變更導入作業。
- 文件中的「IdP 資訊清單」現已改稱「設定檔」。這不需要修改任何導入方式。
- 「設定檔」中的
id_token_endpoint
已重新命名為id_assertion_endpoint
。 - 向 IdP 發出的要求現在包含
Sec-Fetch-Dest: webidentity
標頭,而非Sec-FedCM-CSRF: ?1
標頭。
Chrome 105 (2022 年 8 月)
- 在文件中加入重要的安全性資訊。識別資訊提供者 (IdP) 需檢查
Referer
標頭是否與在 ID 權杖端點上註冊的 RP 相符。 - 頂層資訊清單已從
/.well-known/fedcm.json
重新命名為/.well-known/web-identity
,且provider_urls
中指定的網址應包含檔案名稱。 FederatedCredential
執行個體上的login()
、logout()
和revoke()
方法已無法使用。- Federated Credential Management API 現在使用新的類型
IdentityCredential
,而不是FederatedCredential
。這可用於特徵偵測,但在其他情況下不太可能會有明顯變化。 - 將登入功能從
navigator.credentials.get()
和FederatedCredential.prototype.login()
的組合移至navigator.credentials.get()
。 - 資訊清單中的撤銷端點已失效。
- 對於
navigator.credentials.get()
呼叫,請使用identity
欄位,而不是federated
欄位。 url
現在是configURL
,必須是資訊清單 JSON 檔案的完整網址,而非navigator.credentials.get()
呼叫的路徑。nonce
現在是navigator.credentials.get()
的選用參數。hint
不再是navigator.credentials.get()
的選項,
const credential = await navigator.credentials.get({
identity: {
providers: [{
configURL: 'https://idp.example/anything.json',
clientId: '********',
nonce: '******'
}]
}
});
const { token } = credential;
Chrome 104 (2022 年 6 月)
- 傳送至 ID 權杖端點的
consent_acquired
參數現在是disclosure_text_shown
。這個值保持不變。 - IdP 資訊清單中的品牌宣傳圖示已停止支援 SVG 圖片,但 RP 的內容安全政策不再需要允許這類圖示。
Chrome 103 (2022 年 5 月)
- 支援桌面環境。
- 支援電腦上的每個每秒要求數設定。
- 用戶端中繼資料端點現在為選用端點。在這個端點中,你也可以選擇是否提供隱私權政策網址。
- 新增在文件中使用 CSP
connect-src
的注意事項。