Federated Credential Management API

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

什么是 FedCM?

FedCM(联合凭据管理)是一种联合身份服务(例如“使用...登录”)的隐私保护方法,借助该方法,用户可以登录网站,而无需与身份服务或网站共享其个人信息。

实现状态

未来,我们计划根据从身份提供方 (IdP)、依赖方 (RP) 和浏览器供应商收到的反馈,引入一些新功能。虽然我们希望身份提供方采用 FedCM,但请注意,FedCM 仍处于积极开发阶段,预计在 2023 年第 4 季度之前,会进行不向后兼容的更改。

为了最大限度地减少部署向后不兼容更改带来的挑战,我们目前针对身份提供方提供两条建议:

  • 订阅我们的简报,我们将随着 API 的发展向您发送最新动态。
  • 我们建议 IdP 在 FedCM API 成熟期间通过 JavaScript SDK 分发该 API,并不建议 RP 使用自托管 SDK。这样可以确保 IdP 可以随着 API 的发展进行更改,而无需要求所有依赖方重新部署。

为什么我们需要 FedCM?

过去十年来,与基于网站的用户名和密码相比,身份联合在提高 Web 上的身份验证标准方面发挥了核心作用,提高了可信度、易用性(例如,无密码单点登录)和安全性(例如,更能抵御钓鱼式攻击和凭据填充攻击)。

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

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

Federrated Credential Management API (FedCM) 提供一个浏览器参与的对话框,允许用户从 IdP 选择帐号以登录网站,从而为网络上的联合身份流程提供特定于用例的抽象。

FedCM 涉及多个步骤来改进网络上的身份。首先,我们专注于减少逐步淘汰第三方 Cookie 对联合身份的影响(请参阅“路线图”部分,进一步了解一些步骤)。

用户使用 FedCM 登录 RP

哪些功能会受到影响?

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

FedCM 的第一个目标是降低逐步淘汰第三方 Cookie 对身份联合的影响,以上就是我们预计会受到影响的领域。如果有未列出的其他用例,我们建议您参与互动并提供反馈

谁应该使用 FedCM?

我们希望 FedCM 仅在满足以下所有条件时对您有用:

  1. 您是身份提供方 (IdP)。
  2. 第三方 Cookie 逐步淘汰会对您造成影响。
  3. 您的 RP 是第三方。如果您的 RP 是 SameParty,则Related Website Set以前称为 First-Party Set)可能会为您提供更好的服务。

您是 IdP

FedCM 要求身份提供方提供支持。依赖方不能独立使用 FedCM。如果您是 RP,可以要求 IdP 提供说明。

第三方 Cookie 逐步淘汰会对您造成影响

只有在您当前的集成受到第三方 Cookie 逐步淘汰的影响时,您才应使用 FedCM。

如果您不确定在 Chrome 逐步淘汰第三方 Cookie 后您的身份联合是否继续有效,可以通过在 Chrome 上屏蔽第三方 Cookie 来测试对网站的影响。

如果在不使用第三方 Cookie 的情况下,您的身份联合没有任何可发现的影响,那么您可以在不使用 FedCM 的情况下继续使用当前的集成。

如果您不确定要检查什么,请详细了解逐步淘汰预计会影响的已知问题

您的 RP 是第三方

如果您是身份提供方,其 RP 与您的 IdP 属于同一方,我们预计 Related Website Sets 可能更适合。Related Website Set 允许同一实体拥有和管理的相关域名声明自己属于同一第一方。这样一来,即使在逐步淘汰第三方 Cookie 之后,同一第三方的第三方 Cookie 也可照常使用。

并不总是无法使用 Related Website Set。但是,如果您的 RP 是 SameParty,请考虑使用 Related Website Set。

用户将如何与 FedCM 互动?

目前,FedCM 的主要工作是减轻第三方 Cookie 逐步淘汰的影响。用户可以在 Chrome 的用户设置中启用或停用 FedCM。

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

查看我们的演示,了解其工作原理。

登录依赖方

用户使用 FedCM 签署 RP

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

如果用户没有通过 IdP 注册 RP 的帐号,系统会显示注册对话框,其中包含额外的公开文本,例如 RP 的服务条款和隐私权政策(如果有)。

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

RP 预计可以在不支持 FedCM 的浏览器上使用。用户应该能够使用现有的非 FedCM 登录流程。详细了解 FedCM 中的登录机制

用于启用或停用 FedCM 的设置

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

通过开启第三方登录服务,在移动设备的 Chrome 设置中启用 FedCM

它们可以通过转到 chrome://settings/content/federatedIdentityApi 对桌面版 Chrome 执行相同的操作。

通过开启第三方登录服务,在桌面设备上的 Chrome 设置中启用 FedCM

路线图

我们正在努力对 FedCM 进行一些更改。

我们已根据反馈进行了多项更新。此外,在 2023 年第 4 季度之前,它预计将持续改进,至少可以保持稳定。如需了解详情,请参阅“更新”。

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

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

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

此外,我们还在积极探索一些未解决的问题,包括我们正在评估或进行原型设计的特定提案:

最后,根据 MozillaAppleTAG 审核人员的反馈,我们认为仍需完成一些工作。 我们正在为以下待解决的问题评估最佳解决方案:

  • 提高用户的理解和匹配意图:正如 Mozilla 指出的,我们希望继续探索不同的用户体验方案、表面区域以及触发条件。
  • 身份属性和选择性披露:正如我们的 TAG 审核人员所述,我们希望提供一种机制,让用户有选择地分享更多或更少的身份属性(例如电子邮件地址、年龄段、电话号码等)。
  • 提高隐私属性:正如 Mozilla 在此处的建议,我们希望继续探索机制以提供更好的隐私保护,例如 IdP 盲,有向标识符。
  • 与 WebAuthn 的关系:正如 Apple 所建议的,我们非常高兴看到通行密钥取得的进展,并致力于在 FedCM、Passwords、WebAuthn 和 WebOTP 之间提供连贯一致的体验。
  • 登录状态:正如 Apple 针对 Privacy CG 的 Login Status API 所建议的,我们深知用户的登录状态是非常实用的信息,可帮助浏览器做出明智的决策。我们迫不及待地想要看看这会带来哪些机会。
  • 企业和教育版:正如 FedID CG 所明确,仍有许多用例未能得到 FedCM 的出色服务,我们仍希望继续改进,例如
    前端频道退出(IdP 能够向 RP 发送信号以退出登录)和对 SAML 的支持。
  • 与 mDL/VC 等的关系:继续努力了解这些 FedCM 如何适合 FedCM,例如借助 Mobile Document Request API 来实现。

使用 FedCM API

您需要在 Chrome 中的 IdP 和 RP 上同时提供安全上下文(HTTPS 或 localhost),才能使用 FedCM。

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

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

互动和分享反馈