發布日期:2025 年 9 月 8 日
各行各業的領導者都瞭解,在提供優質使用者體驗的同時保護隱私權有多重要。Seznam 致力於提供不打折的使用者體驗和隱私權,並成功整合了聯合憑證管理 (FedCM)。
可從 FedCM 受惠的公司
各領域的機構都將 FedCM 整合至解決方案。由於 FedCM 是為聯合身分識別管理而設計,因此身分識別提供者 (IdP) 是主要受益者。他們會使用這項資訊提供更優質的登入體驗。電子商務服務供應商和付款服務供應商 (其中許多也擔任身分識別資訊提供者),也發現可透過 FedCM 改善使用者體驗的機會。
Seznam
Seznam 是歐洲科技公司和身分提供者,觸及 90% 的捷克人口。做為社交、知識和內容中心。Seznam 採用 FedCM,讓在合作夥伴平台經營網路商店的客戶,可以使用 Seznam 帳戶登入。
採用 FedCM 後,Seznam 的合作夥伴聯播網使用者登入率大幅提升,使用者體驗也獲得改善,而且無論第三方 Cookie 是否可用,都能提供一致的 ID 流程。
動機
Seznam 選擇導入 FedCM,是因為這項技術有幾項公認的優點:
- FedCM 的設計以使用者為中心,讓使用者控管提供給 IdP 的資訊。這與 Seznam 為使用者提供安全私密環境的願景一致。
- FedCM 是內建的瀏覽器功能,與 Seznam 現有的登入體驗相容,後者採用 OAuth 2.0 標準。
- FedCM 是一種以隱私權為重的身分聯盟方法。舉例來說,如果使用者登入,系統只會與 IdP 分享使用者造訪 RP 的資訊。這與 Seznam 對永續經營的看法一致。
實作詳情
Seznam 在現有的 OAuth 解決方案上導入 FedCM 做為一層。在這個架構中,FedCM 流程會將 OAuth 授權碼從 IdP 安全地傳輸至 RP。
導入難易度
Seznam 發現 FedCM 實作方式簡單明瞭,且與現有做法一致。這項研究和 API 實作作業歷時一個月,需要兩名開發人員。我們在不到兩個月內就將 FedCM 投入生產。這個過程是反覆進行的,我們花費大量時間研究 API。
挑戰
Seznam 是早期採用者,他們發現了幾項挑戰,並提供寶貴意見,協助我們改善 API。
支援多個身分識別提供者
Seznam 對 FedCM 支援多個識別資訊提供者這點很感興趣。這項功能的目的是讓使用者在合作夥伴 RP 上選擇 Seznam 或 Google 帳戶。不過,Seznam 剛開始導入 FedCM 時,這項功能還處於早期實作階段,開發人員必須註冊原始碼試用,並使用權杖為使用者啟用這項功能。因此,Seznam 選擇等待這項功能在 Chrome 穩定版中推出。
這項功能適用於 Chrome 136 以上版本,開發人員可以設定支援多個身分識別提供者。舉例來說,如要同時支援 Seznam 和 Google 識別資訊提供者,IdP 可以在單一 get() 呼叫中加入這兩個提供者,RP 也可以獨立執行這項操作:
// Executed on the RP's side:
const credential = await navigator.credentials.get({
identity: {
providers: [
{
// IdP1: Seznam config file URL
configURL: 'https://szn.cz/.well-known/web-identity',
clientId: '123',
},
{
// Allow Google Sign-in
configURL: 'https://accounts.google.com/gsi/fedcm.json',
clientId: '456',
},
],
},
});
Seznam 表示這項功能將納入其解決方案。此外,FedCM 團隊也實作了多個 SDK 的支援功能,支援多個 get() 呼叫。
私人 DNS
在測試階段,Seznam 遇到與網路設定相關的挑戰。該公司測試用的 IdP 伺服器位於私人網路中,只能透過私人 DNS 存取。在公開曝光前,內部測試和開發環境通常會採用這種設定。
不過,這種設定會導致一個問題:由於 well-known 檔案必須從 eTLD+1 提供,而私有開發網域並未在 Public Suffix List 中註冊,因此瀏覽器不會傳送要求,擷取開發網域上代管的 well-known 檔案:
login.idp.example:例如正式版網域。idp.example/.well-known/web-identity:出示文件中的範例well-known檔案。login.dev.idp.example:例如開發網域。login.dev.idp.example/.well-known/web-identity:開發環境中的well-known檔案範例。
如果 FedCM 實作項目是代管在私人網域上,瀏覽器對 well-known 檔案的要求會導致這項錯誤:
The fetch of the well-known file resulted in a network error: ERR_NAME_NOT_RESOLVED
啟用 Chrome #fedcm-without-well-known-enforcement 旗標即可解決這項錯誤。啟用這項標記後,瀏覽器會略過擷取 well-known 檔案,以利進行測試。瞭解如何在 Chrome 中啟用測試旗標。
自訂資訊揭露聲明
Seznam 也想在初始 FedCM UI 設計中加入額外資訊。標準 FedCM 對話方塊會向使用者顯示固定訊息,說明特定資料 (通常是使用者的個人資料相片、姓名和電子郵件地址) 會與 RP 共用。
FedCM 團隊已納入意見回饋,並擴充 API,讓您自訂向使用者顯示的揭露事項。舉例來說,透過「繼續」功能,IdP 可以將使用者重新導向至自訂頁面,要求提供其他資訊或權限。自 Chrome 132 起,系統支援自訂參數和欄位功能,可進一步自訂。
信賴憑證者來源驗證
IdP 伺服器必須驗證傳入 FedCM 要求中的 Origin HTTP 標頭,確保要求符合 RP 向 IdP 預先註冊的來源。這可確保 FedCM ID 聲明要求來自授權 RP,而非使用 client_id 的攻擊者。
Seznam 有一個特殊情況:合作夥伴 RP 向 Seznam 註冊時,不會要求 RP 的來源資料。這表示系統無法驗證 RP 的來源。
Seznam 的 FedCM 整合功能是以現有的 OAuth 解決方案為基礎建構而成。為確保解決方案安全無虞,該團隊採取替代做法,同時驗證 RP 的 client_id 和 client_secret,而不檢查來源。
識別資訊提供者面向使用者的網域
Seznam 的使用者驗證基礎架構主要在 szn.cz 網域運作,該網域會代管 FedCM 的必要 IdP 端點。不過,該公司主要的公司身分和網域是 seznam.cz,使用者普遍透過這個網域認識並信任該公司的服務。
FedCM 對話方塊會顯示 IdP 端點的實際來源網域:szn.cz。如果使用者熟悉 seznam.cz 品牌,在登入過程中看到系統提示要使用較不熟悉的 szn.cz 網域登入時,可能會感到困惑並猶豫不決。
從 Chrome 141 版起,FedCM 不允許顯示與 IdP 實作代管網域不同的網域。這項限制是刻意設計的選擇,旨在確保使用者資訊公開透明。不過,FedCM 團隊瞭解這項限制可能造成的挑戰,目前正在討論可能的調整措施。
影響
Seznam 現在可透過 FedCM API,為合作夥伴使用者提供單次輕觸授權流程。並強調 FedCM 的使用者體驗優於其他驗證方法。
Seznam 發現改用 FedCM 登入後,網站的使用者參與度顯著提升,但未進行全面分析,因此無法排除其他因素的影響,準確判斷直接影響。整合 FedCM 前,實作方式允許使用同意的雜湊電子郵件進行使用者識別,以進行訪客結帳。進行這類分析時,最大的挑戰在於評估使用者轉換是否可歸因於 FedCM,或是使用者是否會使用訪客結帳完成購買。Seznam 的假設指出,FedCM 的易用性提升可能是轉換率提高的原因。
結論
Seznam 成功導入 FedCM,在現有的 OAuth 解決方案之外,提供替代授權流程。雖然 Seznam 在實作 API 時,面臨一些與身分識別提供者支援、私人 DNS 設定、揭露文字自訂、信賴方來源驗證和面向使用者的網域顯示相關的挑戰,但 API 自實作以來已趨於成熟。FedCM 團隊已納入 Seznam 和其他早期採用者的意見,提供更完善的工具來解決這些挑戰。下一步,Seznam 打算實作 FedCM,支援多個身分識別提供者。