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 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 版開始變更。 我們決定放寬將使用者視為回訪的條件:如果 IdP 可在 RP 情境中取得第三方 Cookie 給 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 版中以下三項功能的支援:
    • Login Status APILogin Status API 是一種網站,特別是 IdP,會通知瀏覽器使用者的登入狀態。透過這個 API,瀏覽器可減少對 IdP 不必要的要求,並降低潛在的時間攻擊。您必須有登入狀態 API,才能使用 FedCM。經此變更後,在第三方 Cookie 遭到封鎖的情況下,不再需要使用 chrome://flags/#fedcm-without-third-party-cookies 旗標即可啟用 FedCM。
    • Error APIError API 會顯示瀏覽器 UI,並顯示 IdP 提供的錯誤資訊,藉此通知使用者。
    • 自動選取旗標 APIAuto-Selected Flag API 會分享在發生自動重新驗證或明確中介服務時,透過輕觸 IdP 和 RP 的「Continue as」按鈕,取得明確的使用者權限。只有在獲得 IdP 和 RP 通訊的使用者權限後,才會共用資料。

Chrome 117 (2023 年 9 月)

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、登入提示等

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

  • 在文件中,「頂層資訊清單」現已改名為「well-known file」。 您不需要變更導入方式。
  • 在文件中,「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 月)

Chrome 103 (2022 年 5 月)

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

資源