Federated Credential Management API 概览

用于实现可保护隐私的身份联合的 Web API。

什么是 FedCM?

FedCM(联邦凭据管理)是一种联合身份服务(例如“使用...登录”)的隐私保护方法,不依赖于第三方 Cookie 或导航重定向。

实现状态

今后,我们计划根据从身份提供方 (IdP)、依赖方 (RP) 和浏览器供应商收到的反馈,推出一系列新功能。虽然我们希望身份提供方采用 FedCM,但请注意,FedCM 仍处于积极开发阶段。

为了尽可能减少部署向后不兼容性更改所带来的挑战,我们为身份提供方提供了以下两条建议:

  • 订阅我们的简报,我们将在该 API 的发展过程中发送更新信息。
  • 在 FedCM API 不断完善的过程中,我们建议 IdP 使用 JavaScript SDK 分发 FedCM API,并建议 RP 不要自行托管 SDK。这将确保 IdP 能够随着 API 的演变进行更改,而无需要求所有依赖方重新部署。

为什么我们需要 FedCM?

在过去十年中,与每个网站的用户名和密码相比,身份联合在提高 Web 上身份验证标准方面发挥了核心作用,在可信性、易用性(例如无密码单点登录)和安全性(例如更好地抵御钓鱼式攻击和撞库攻击)方面都取得了长足进步。

借助身份联合,RP(依赖方)依赖 IdP(身份提供方)为用户提供账号,而无需用户输入新的用户名和密码。

遗憾的是,身份联合所依赖的机制(iframe、重定向和 Cookie)正被积极滥用来跟踪整个网络上的用户。由于用户代理无法区分身份联合和身份跟踪,因此针对各种类型的滥用行为的缓解措施加大了身份联合的部署难度。

FedCM API 为 Web 上的联合身份流提供了特定于用例的抽象,方法是显示一个浏览器中介对话框,允许用户从 IdP 选择账号以登录网站。

FedCM 是一项多步骤计划,旨在改进 Web 身份验证。在第一步中,我们将重点放在降低第三方 Cookie 限制对联合身份的影响(如需了解后续几步,请参阅“路线图”部分)。

用户正在使用 FedCM 向受限方进行登录。

预计哪些方面会受到影响?

通过社区努力和研究,我们了解到,有一些与身份联合相关的集成会受到第三方 Cookie 限制的影响:

FedCM 的首要目标是降低第三方 Cookie 限制对身份联合的影响,以下是预计会受到影响的方面。如果有未列出的其他用例,您可以参与并分享反馈

谁应该使用 FedCM?

只有在满足以下所有条件时,FedCM 才能对您有所帮助:

  1. 您是身份提供方 (IdP)。
  2. 您受到第三方 Cookie 限制的影响。
  3. 您的 RP 是第三方网站。如果您的 RP 是具有实质关联的网站,相关网站集可能更适合您。

您是 IdP

FedCM 需要身份提供方的支持。依赖方无法独立使用 FedCM。如果您是 RP,可以要求您的 IdP 提供相关说明。

您受到第三方 Cookie 限制的影响

仅当您当前的集成受到第三方 Cookie 限制的影响时,才应使用 FedCM。

如果您不确定在无法使用第三方 Cookie 时身份联合是否仍会正常运行,可以通过在 Chrome 中屏蔽第三方 Cookie,在网站上测试其影响。

如果在没有第三方 Cookie 的情况下,您的身份联合不会受到任何可检测到的影响,您可以继续使用当前的集成,而无需 FedCM。

如果您不确定要检查的内容,请详细了解第三方 Cookie 限制预计会影响的已知功能

您的 RP 由第三方

如果您是身份提供方,并且 RP 与 IdP 之间存在第一方关系,则相关网站集可能是更好的选择。相关网站集 (RWS) 是一种组织声明网站之间关系的方式,以便浏览器允许出于特定目的进行有限的第三方 Cookie 访问。这样,即使第三方 Cookie 受到其他限制,也能在一组有意义关联的网站之间发挥作用。

用户将如何与 FedCM 互动?

FedCM 的主要目标是减轻第三方 Cookie 限制的影响。用户可以在 Chrome 的用户设置中启用或停用 FedCM。

FedCM 设计为与协议无关,并提供以下与身份验证相关的功能。

观看演示,了解运作方式。

登录依赖方

用户使用 FedCM 登录 RP。

当用户进入依赖方 (RP) 网站时,如果用户已登录 IdP,系统会显示 FedCM 登录对话框。

如果用户在 RP 上没有 IdP 账号,系统会显示一个注册对话框,其中包含其他披露文本,例如 RP 的服务条款和隐私权政策(如果有)。

用户可以通过点按以...的身份继续完成登录。如果成功,浏览器会存储用户已在 RP 上使用 IdP 创建联合账号这一事实。

RP 应在不支持 FedCM 的浏览器上运行。用户应能够使用现有的非 FedCM 登录流程。详细了解如何在 FedCM 中登录

用于启用或停用 FedCM 的设置

用户可以在 Android 版 Chrome 的设置中启用或停用 FedCM。依次前往设置 > 网站设置 > 第三方登录,然后更改切换开关。

在移动设备上的 Chrome 设置中,开启“第三方登录”以启用 FedCM

用户可以前往 chrome://settings/content/federatedIdentityApi,在桌面版 Chrome 中执行相同操作。

在桌面设备上的 Chrome 设置中,开启“第三方登录”以启用 FedCM

提示冷却期

如果用户手动关闭界面,系统会暂时将一条条目添加到设置界面,并且该界面在一段时间内不会再显示在同一网站中。该界面将在该时段过后重新启用,但如果连续关闭,时长将呈指数级扩大。例如,在 Chrome 中:

连续关闭次数 FedCM 提示被抑制的时段
1 两小时
2 一天
3 一周
4+ 4 周

其他浏览器可能会定义自己的冷却时间。

用户可以前往设置页面,或点击 PageInfo 界面(网址栏旁边的锁形图标)并重置权限,以便在 RP 上手动重新启用 FedCM。

路线图

我们正在努力对 FedCM 进行多项更改。如需了解详情,请参阅更新

  • 更新日志:Federated Credential Management API 更新

我们知道还有一些工作仍然需要解决,包括我们从 IdP、RP 和浏览器供应商那里了解到的问题。我们认为自己知道如何解决这些问题:

  • 跨源 iframe 支持:IdP 可以从跨源 iframe 中调用 FedCM(更新)。
  • 个性化按钮:IdP 可以从 IdP 拥有的跨源 iframe(更新)内的登录按钮上显示回访用户的身份。
  • 指标端点:向 IdP 提供效果指标。

此外,我们还在积极探索一些未解决的问题,包括我们正在评估或原型设计的具体方案:

最后,根据 MozillaAppleTAG 审核员的反馈,我们认为仍有工作要做。我们正在努力评估以下悬而未决问题的最佳解决方案:

  • 提高用户理解度并匹配意图:正如 Mozilla 所指出的的,我们希望继续探索不同的用户体验方案、途径以及触发标准。
  • 身份属性和选择性披露:正如我们的 TAG 审核员所指出,我们希望提供一种机制,以便选择性地分享更多或更少的身份属性(例如电子邮件地址、年龄段、电话号码等)。
  • 提高隐私保护属性:正如 Mozilla 在其标准立场中所建议的那样,我们希望继续探索可提供更好隐私保护保证的机制,例如 IdP 盲目性、定向标识符。
  • 与 WebAuthn 的关系:我们非常高兴看到 Apple 建议的通行密钥取得了进展,并将致力于在 FedCM、密码、WebAuthn 和 WebOTP 之间提供一致且协调的体验。
  • 登录状态:正如 Apple 在隐私权 CG 的登录状态 API 中所建议的那样,我们也认为用户的登录状态是一项有用的信息,可以帮助浏览器做出明智的决策,我们很高兴看到由此带来的各种机会。(更新
  • 企业和教育:FedID CG 清楚地表明,FedCM 仍无法很好地满足许多用例,我们希望继续努力,例如实现前端退出(IdP 能够向 RP 发送退出信号)和支持 SAML。
  • 与 mDL/VC 等的关系:继续努力了解这些功能如何与 FedCM 搭配使用,例如与 Mobile Document Request API 搭配使用。

使用 FedCM API

您需要在 Chrome 中的 IdP 和 RP 上都设置安全上下文(HTTPS 或 localhost),才能使用 FedCM。

如需与 FedCM 集成,您需要为账号列表、断言签发和(可选)客户端元数据创建一个众所周知的文件、配置文件和端点。然后,FedCM 会公开 JavaScript API,供 RP 使用这些 API 通过 IdP 登录。

如需了解如何使用 FedCM API,请参阅 FedCM 开发者指南

互动和分享反馈

遵守电子隐私权法

无论是作为 IdP 还是 RP 使用 FedCM,都涉及在用户的终端设备上存储信息或访问已存储在其中的信息,因此,在欧洲经济区 (EEA) 和英国,此类活动通常需要征得用户同意,并受电子隐私权法约束。您有责任确定是否有必要使用 FedCM,以提供用户明确请求的线上服务,从而不遵守用户意见征求要求。如需了解详情,我们建议您阅读 Privacy Sandbox 与隐私权相关的合规性常见问题解答