Federated Credential Management API 更新

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 月)

Chrome 125 (2024 年 4 月)

Chrome 123 (2024 年 2 月)

  • 新增對 Domain Hint API 的支援。Domain Hint API 可讓 RP 在 FedCM API 呼叫中指定 domainHint 屬性,只為使用者顯示相符的帳戶。

Chrome 122 (2024 年 1 月)

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 可透過以下方式取得:使用者設定、企業政策、推論法 (SafariFirefoxChrome) 和其他網路平台 API (例如 Storage Access API)。請注意,如果 IdP 日後失去第三方 Cookie 存取權,如果使用者之前從未在 FedCM UI 中明確授予權限 (例如點選「Continue as」按鈕),系統仍會將使用者視為新使用者。
      開發人員無須採取任何行動。請注意,如果 IdP 有第三方 Cookie 存取權,並聲稱使用者先前曾在 RP 上建立帳戶,則這項變更可能會觸發自動重新驗證流程。

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 通訊權限後,才會進行分享。

Chrome 117 (2023 年 9 月)

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 月)

Chrome 103 (2022 年 5 月)

  • 支援桌面環境。
  • 支援電腦上的每個 RP 設定。
  • 用戶端中繼資料端點現在為選用項目。在這個端點中,隱私權政策網址也是選填項目。
  • 在文件中新增 CSP connect-src 使用注意事項。

資源