Federated Credential Management API 已在 Chrome 108 中推出,但預計會持續發展。我們沒有計畫進行任何重大變更。
這些更新適用於哪些對象?
如果你符合下列條件,就必須進行這些更新:
- 您是使用 Federated Credential Management API 的 IdP。
- 您是 IdP 或 RP,並有意擴充 API 以符合您的用途,例如您一直在觀察或參與 FedID CG 存放區的討論,並想瞭解對 API 所做的變更。
- 您是瀏覽器供應商,想瞭解 API 的導入狀態。
如果您是第一次使用這個 API,或尚未嘗試過,請參閱 Federated Credential Management API 簡介。
變更記錄
如要隨時掌握 FedCM API 異動,請參閱我們的部落格或電子報。
Chrome 131 (2024 年 10 月)
- Storage Access API 現在會使用 FedCM 做為信任信號。
- 如果使用者透過 FedCM 進行驗證,且已選擇加入 RP,IdP 嵌入項目就能呼叫
requestStorageAccess()
方法,自動取得儲存空間存取權,不必再另外提示使用者。
- 如果使用者透過 FedCM 進行驗證,且已選擇加入 RP,IdP 嵌入項目就能呼叫
Chrome 125 (2024 年 4 月)
- 由於規格將「帳戶清單端點」的名稱更新為「帳戶端點」,因此我們的說明文件也相應調整。
- 按鈕模式 API 的來源試用版已在 Chrome 電腦版 125 推出。如要進一步瞭解這項功能,請參閱「FedCM 更新:按鈕模式 API 來源測試、CORS 和 SameSite」。
- 自 Chrome 125 起,ID 斷言端點會強制執行 CORS。
- 自 Chrome 125 起,Chrome 只會將明確標示為
SameSite=None
的 Cookie 傳送至 ID 斷言端點和 帳戶端點。
Chrome 123 (2024 年 2 月)
- 新增對 Domain Hint API 的支援。Domain Hint API 可讓 RP 在 FedCM API 呼叫中指定
domainHint
屬性,只為使用者顯示相符的帳戶。
Chrome 122 (2024 年 1 月)
- 新增對 Disconnect API 的支援。Disconnect 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 開始變更。我們決定放寬條件的限制,將使用者視為回訪:如果第三方 Cookie 可在 RP 情境中提供給 IdP,Chrome 就會信任 IdP 透過approved_clients
清單指定的使用者帳戶狀態聲明,並在適用情況下觸發自動重新驗證。第三方 Cookie 可透過以下方式取得:使用者設定、企業政策、推論法 (Safari、Firefox、Chrome) 和其他網路平台 API (例如 Storage Access API)。請注意,如果 IdP 日後失去第三方 Cookie 存取權,如果使用者之前從未在 FedCM UI 中明確授予權限 (例如點選「Continue as」按鈕),系統仍會將使用者視為新使用者。
開發人員無須採取任何行動。請注意,如果 IdP 有第三方 Cookie 存取權,並聲稱使用者先前曾在 RP 上建立帳戶,則這項變更可能會觸發自動重新驗證流程。
- FedCM 中的自動重新驗證功能只會在使用者返回時觸發。也就是說,使用者必須在每個瀏覽器執行個體中使用 FedCM 登入 RP 一次,才能觸發自動重新驗證機制。這項條件最初是為了降低追蹤器冒充身分提供者 (IdP) 的風險,並且在使用者不知情或未同意的情況下,誘騙瀏覽器自動重新驗證使用者。不過,如果追蹤器可在 RP 情境中存取第三方 Cookie,這項設計就無法保證隱私權益。FedCM 僅提供透過第三方 Cookie 可用的部分功能,因此如果追蹤器已在 RP 情境中存取第三方 Cookie,存取 FedCM 就不會帶來額外的隱私權風險。
Chrome 120 (2023 年 11 月)
- Chrome 120 新增了對下列三項功能的支援:
- 登入狀態 API:登入狀態 API 是一種機制,可讓網站 (尤其是 IdP) 向瀏覽器告知使用者的登入狀態。有了這個 API,瀏覽器就能減少對 IdP 的不必要要求,並減輕潛在的時間攻擊。登入狀態 API 是 FedCM 的必要條件。這項異動生效後,當第三方 Cookie 遭到封鎖時,您就不再需要使用
chrome://flags/#fedcm-without-third-party-cookies
標記來啟用 FedCM。 - 錯誤 API:錯誤 API 會顯示瀏覽器 UI,並顯示 IdP 提供的錯誤資訊,以便通知使用者。
- 自動選取標記 API:自動選取標記 API 會在發生自動重新授權或明確中介服務時,透過點選「Continue as」按鈕,與 IdP 和 RP 共用是否取得明確的使用者權限。只有在使用者授予 IdP 和 RP 通訊權限後,才會進行分享。
- 登入狀態 API:登入狀態 API 是一種機制,可讓網站 (尤其是 IdP) 向瀏覽器告知使用者的登入狀態。有了這個 API,瀏覽器就能減少對 IdP 的不必要要求,並減輕潛在的時間攻擊。登入狀態 API 是 FedCM 的必要條件。這項異動生效後,當第三方 Cookie 遭到封鎖時,您就不再需要使用
Chrome 117 (2023 年 9 月)
- 自 Chrome 117 起,Android 版提供 Idp Sign-In Status API 來源試用。如要進一步瞭解這項功能,請參閱「FedCM 更新:IDP 登入狀態 API、登入提示等」一文。
Chrome 116 (2023 年 8 月)
- Chrome 116 新增了對下列三項功能的支援:
- Login Hint API:指定要登入的偏好使用者帳戶。
- User Info API:擷取回訪使用者的資訊,讓身分識別資訊提供者 (IdP) 在 iframe 中顯示個人化的登入按鈕。
- RP Context API:在 FedCM 對話方塊中使用與「Sign in」不同的標題。
- IdP Sign-In Status API 的來源試用計畫現已推出。如要進一步瞭解這項功能,請參閱「FedCM 更新:IDP 登入狀態 API、登入提示等」一文。
Chrome 115 (2023 年 6 月)
- 新增自動重新驗證功能支援,讓使用者在使用 FedCM 進行初次驗證後,可在返回時自動重新驗證。這可改善使用者體驗,並在初始驗證後,讓 RP 更流暢地重新驗證。進一步瞭解 FedCM 自動重新驗證。
Chrome 110 (2023 年 2 月)
- 針對 ID 斷言端點,IdP 需要檢查
Origin
標頭 (而非Referer
標頭),查看值是否與用戶端 ID 來源相符。 - FedCM 現已支援跨來源 iframe。內嵌者應指定 Permissions-Policy
identity-credentials-get
,允許在內嵌的跨來源 iframe 中使用 FedCM API。您可以查看跨來源 iframe 的示例。 - 新增 Chrome 旗標
chrome://flags/#fedcm-without-third-party-cookies
。有了這個標記,您就可以透過封鎖第三方 Cookie 來測試 Chrome 中的 FedCM 功能。詳情請參閱 FedCM 說明文件。
Chrome 108 (2022 年 10 月)
- 文件中「頂層資訊清單」現在稱為「已知檔案」。不需要變更導入方式。
- 文件中「IdP 資訊清單」現在稱為「設定檔案」。不需要修改導入方式。
- 「config 檔案」中的
id_token_endpoint
已重新命名為id_assertion_endpoint
。 - 對 IdP 提出的要求現在包含
Sec-Fetch-Dest: webidentity
標頭,而非Sec-FedCM-CSRF: ?1
標頭。
Chrome 105 (2022 年 8 月)
- 在文件中加入重要安全資訊。身分識別資訊提供者 (IdP) 需要檢查
Referer
標頭是否與 RP 先前在ID 權杖端點註冊的來源相符。 - 頂層資訊清單會從
/.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 月)
- 支援桌面環境。
- 支援電腦上的每個 RP 設定。
- 用戶端中繼資料端點現在為選用項目。在這個端點中,隱私權政策網址也是選填項目。
- 在文件中新增 CSP
connect-src
使用注意事項。