本页介绍了 FedCM 的优势、应考虑实现 FedCM 的人员,以及用户如何与 FedCM 互动。
Federated Credential Management (FedCM) 是一种以隐私保护为中心且对用户友好的联合身份服务(例如使用身份提供方登录)方法,不依赖第三方 Cookie 或导航重定向。
借助 FedCM,用户可以在网站上通过第三方身份提供方采用新的方式进行身份验证。
什么是身份联合
身份联合会将个人(用户或实体)的身份验证或授权委托给受信任的外部身份提供方 (IdP)。然后,IdP 会允许该用户登录依赖方网站 (RP)。借助身份联合,RP 依赖于 IdP 为用户提供账号,而无需用户提供新的用户名和密码。
借助联合身份解决方案,用户无需为每个 RP 创建另一组凭据。这有助于改善用户体验、降低遭到钓鱼式攻击的几率,并帮助从可信身份提供程序获取经过验证的用户信息。
传统解决方案和第三方 Cookie
传统的身份联合机制依赖于 iframe、重定向或第三方 Cookie,会导致隐私问题。这些解决方案可能会被用于跟踪用户在网络上的活动,而浏览器无法区分合法身份服务和不必要的监视。
出于隐私保护考虑,各大浏览器都在限制使用第三方 Cookie。这可能会影响某些功能。通过社区的努力和我们的研究,我们了解到,有一些身份与联合相关的集成受到第三方 Cookie 限制的影响。
使用 FedCM 的身份联合
FedCM 旨在让这些重要的身份验证流程可供选择在限制第三方 Cookie 的情况下浏览的用户使用。
FedCM 不依赖于协议:它可以作为独立解决方案实现,也可以作为其他协议可以利用的额外层实现。例如,通过实现 FedCM 端点,然后将 FedCM 响应中返回的授权代码交换为 OAuth 访问令牌,功能齐全的 OAuth 服务器可以获享 FedCM 的浏览器中介的一键式登录体验和直观的界面。
为什么需要 FedCM?
与传统解决方案相比,它为 Web 生态系统提供了多项优势,在设计时充分考虑了用户、RP 和 IdP 开发者的需求。
支持无需第三方 Cookie 的身份解决方案
FedCM 有助于减少对第三方 Cookie 的依赖,因为第三方 Cookie 通常用于跨网站跟踪用户。该 API 可提供个性化的登录体验,即使用户选择在限制第三方 Cookie 的情况下浏览,也能获享此体验。
FedCM 还与其他 Privacy Sandbox API 集成。例如,Storage Access API 使用 FedCM 身份验证作为信任信号。对于同时依赖 FedCM 进行身份验证和 SAA 来启用跨源 iframe 访问必要存储空间的网站,此集成非常有用。
改进了用户体验
FedCM 引入了浏览器中介的界面对话框,以简化一键式登录流程。该 API 还解决了登录页面杂乱的问题(有时称为 NASCAR 问题)。

FedCM 提供简单易用的界面,而不是大量的社交登录按钮。
安全
借助联合身份验证方法,用户可以使用由 IdP 管理的可信账号。采用这种方法,用户无需为每个网站添加凭据。这可以减少钓鱼式攻击的攻击面。此外,RP 无需自行实施强大的安全措施,而是可以依赖于专门从事安全身份管理的 IdP 的专业知识。
FedCM 旨在让联合身份流程对用户更加方便,从而鼓励用户优先使用联合身份流程,而不是安全性较低的身份流程。
为更多用户提供个性化体验
FedCM 可减少账号注册流程中的用户体验摩擦。Google 身份服务的案例研究表明,用户更喜欢使用 FedCM 的一键式流程创建账号,而不是使用多步登录选项。
借助 FedCM,更多 IdP 可以为其用户提供一键式登录体验。随着越来越多的 IdP 提供一键式身份验证流程,用户可以在 RP 上从更多 IdP 中进行选择。FedCM 通过向用户显示最相关的账号,提供了改进的 IDP 选择机制。
注册率越高,RP 就越能为更多用户提供个性化体验。
支持多种身份提供方
FedCM 的简化界面旨在向用户显示相关 IdP 的个性化列表。借助 FedCM 的 IdP 选择机制,RP 选择 IdP 不再受 IdP 用户群规模的限制。例如,部分用户可能只在 small-idp.example
中拥有账号,而没有在 bigger-idp.example
中拥有账号。
借助多 IDP 功能,rp.example
既可以支持 small-idp.example
和 bigger-idp.example
,又不会使界面杂乱无序。这对所有相关方都有好处:
- 用户可以选择其首选的 IdP,无论其规模大小。
- RP 通过多元化的 IdP 支持覆盖更多用户
- 用户群较小的 IdP 可在更多 RP 上使用。
谁应使用 FedCM?
只有在满足以下条件时,FedCM 才会对您有所帮助:
- 您希望支持联合身份流程,即使用户选择在不使用第三方 Cookie 的情况下浏览网页也是如此。
- 您是拥有第三方 RP 的身份提供方 (IdP)。如果您的 RP 是具有实质关联的网站,相关网站集可能更适合您。
- 您有自己的身份解决方案,并且有多个网域依赖于该解决方案。
您是 IdP
FedCM 需要身份提供方的支持。依赖方无法独立使用 FedCM。如果您是 RP,可以要求您的 IdP 提供相关说明。
多个 RP
如果您的 RP 是第三方,或者您有超过 4 个 RP 使用您的身份解决方案,则 FedCM 是联合身份的推荐 API。
如果您是身份提供方,并且有最多 5 个 RP,并且这些 RP 与 IdP 之间存在第一方关系,请考虑使用相关网站集 (RWS)。RWS 允许在一系列有意义关联的网站之间进行有限的第三方 Cookie 访问,即使第三方 Cookie 受到其他限制也是如此。
您希望支持无 Cookie 身份联合流程
FedCM 支持基本联合身份流程,即使用户选择不使用第三方 Cookie 浏览网页,也能使用这些流程。借助 FedCM,用户仍可使用其联合账号在 RP 上注册、登录和退出账号。
此外,FedCM 还可用作 Storage Access API 的信任信号,消除 IdP 发起的存储空间访问请求带来的摩擦。
通过在 Chrome 中屏蔽第三方 Cookie,测试您的身份联合是否仍适用于选择不使用第三方 Cookie 来浏览网页的用户。请务必测试这些已知功能,因为第三方 Cookie 限制可能会影响这些功能。
用户与 FedCM 的互动
FedCM 的设计不依赖于身份验证协议,可为用户提供一种新的流程,以便使用第三方 IdP 对 RP 进行身份验证。通过我们的演示版试用 FedCM。
登录信赖方
FedCM 有两种界面模式:被动和主动。
被动模式。在被动模式下,系统无需用户互动即可显示 FedCM 提示。当用户到达依赖方 (RP) 网站时,如果满足以下条件,则在调用 navigator.credentials.get()
时可能会显示 FedCM 登录对话框:
- 用户已登录 IdP。
- 用户的浏览器中未设置 FedCM 冷却时间设置。
- 用户未在浏览器设置中停用 FedCM。详细了解用户如何选择停用 FedCM。
活动模式。在活跃模式下,需要用户执行短暂的激活操作(例如点击使用…登录按钮),才能触发 FedCM 提示。
用户可以点按继续以 <user> 身份登录来完成登录。如果成功,浏览器会存储用户已在 RP 上使用 IdP 创建联合账号这一事实。
如果用户在 RP 上没有 IdP 账号,系统会显示一个注册对话框,其中包含其他披露文本,例如 RP 的服务条款和隐私权政策。
遵守电子隐私权法
无论是作为 IdP 还是 RP 使用 FedCM,都涉及在用户的终端设备上存储信息或访问已存储在其中的信息,因此,此类活动须遵守欧洲经济区 (EEA) 和英国的电子隐私权法,通常需要征得用户同意。您有责任确定使用 FedCM 是否绝对必要,以提供用户明确请求的在线服务,从而免于遵守意见征求要求。如需了解详情,我们建议您阅读 Privacy Sandbox 与隐私权相关的合规性常见问题解答。
Vision
我们正在积极开发新功能,以解决当前的限制并提供更好的用户体验。
- 我们正在探索更简洁的用户体验方案,以确保为用户提供顺畅、直观且干扰性较小的身份验证流程。
- 我们致力于加强用户隐私保护。我们计划改用以委托为导向的 NextGen FedCM 模型,以缓解 IdP 跟踪问题。借助 NextGen,用户可以在 RP 上登录,而无需 IdP 跟随用户。
- FedCM 旨在根据 RP 的选择,为用户提供更多身份提供方选项。为此,我们正在开发多 IdP 和 IdP 注册 API。
- 我们正在积极努力将 FedCM 与其他身份验证方法(例如通行密钥)以及其他方式(例如自动填充)集成,以提供统一的身份验证体验。
如需了解详情,请参阅我们的路线图。