一种可实现能保护隐私的身份联合的 Web API。
什么是 FedCM?
FedCM(联邦凭据管理)是一种联合身份服务(例如“使用...登录”)的隐私保护方法,不依赖于第三方 Cookie 或导航重定向。
实现状态
- Chrome 平台状态
- Chrome 108 中已提供 FedCM。
- FedCM 提案可供公开讨论。
- 其他浏览器尚不支持 FedCM。
- Mozilla 正在实现 Firefox 的原型,并且 Apple 已表示对就 FedCM 提案展开合作的普遍支持和兴趣。
今后,我们计划根据从身份提供方 (IdP)、依赖方 (RP) 和浏览器供应商收到的反馈,推出一系列新功能。虽然我们希望身份提供方能够采用 FedCM,但请注意,FedCM 仍在积极开发中。
为了最大限度地减少部署向后不兼容的更改带来的挑战,我们向身份提供方提出了以下两点建议:
- 订阅我们的简报,我们会在 API 不断演变时向您发送最新动态。
- 我们建议 IdP 在该 API 成熟时使用 JavaScript SDK 分发 FedCM API,并不鼓励 RP 使用自托管 SDK。这将确保 IdP 能够随着 API 的演变进行更改,而无需要求所有依赖方重新部署。
为什么需要 FedCM?
在过去十年中,与每个网站的用户名和密码相比,身份联合在提高 Web 上身份验证标准方面发挥了核心作用,在可信性、易用性(例如无密码单点登录)和安全性(例如更好地抵御钓鱼式攻击和撞库攻击)方面都取得了长足进步。
借助身份联合,RP(依赖方)依赖 IdP(身份提供方)为用户提供账号,而无需用户输入新的用户名和密码。
遗憾的是,身份联合依赖的机制(iframe、重定向和 Cookie)正被积极滥用来跟踪网络上的用户。由于 User Agent 无法区分身份联合和跟踪,因此针对各种类型的滥用行为采取的缓解措施会使身份联合的部署变得更加困难。
FedCM API 为 Web 上的联合身份流提供了特定于用例的抽象,方法是显示一个浏览器中介对话框,允许用户从 IdP 选择账号以登录网站。
FedCM 是一个涉及多个步骤的过程,旨在改进网络上的身份信息。在第一步中,我们将重点放在降低第三方 Cookie 限制对联合身份的影响(如需了解后续几步,请参阅“路线图”部分)。
预计哪些方面会受到影响?
通过社区努力和研究,我们了解到,有一些与身份联合相关的集成会受到第三方 Cookie 限制的影响:
FedCM 的首要目标是降低第三方 Cookie 限制对身份联合的影响,以下是预计会受到影响的方面。如果有未列出的其他用例,您可以参与并分享反馈。
谁应该使用 FedCM?
只有在满足以下所有条件时,FedCM 才能对您有所帮助:
- 您是身份提供方 (IdP)。
- 您受到第三方 Cookie 限制的影响。
- 您的 RP 是第三方网站。如果您的 RP 是有意义的相关网站,那么 Related Website Set 可能会更适合您。
您是 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 与协议无关,可提供以下与身份验证相关的功能。
观看演示,了解运作方式。
登录信赖方
当用户登录依赖方 (RP) 网站时,如果用户已登录 IdP,系统会显示 FedCM 登录对话框。
如果用户在 RP 上没有 IdP 账号,系统会显示一个注册对话框,其中包含其他披露文本,例如 RP 的服务条款和隐私权政策(如果有)。
用户可以点按继续以...身份完成登录。如果成功,浏览器会存储用户已在 RP 上使用 IdP 创建联合账号这一事实。
RP 应在不支持 FedCM 的浏览器上运行。用户应该能够使用现有的非 FedCM 登录流程。详细了解 FedCM 中的登录方式。
用于启用或停用 FedCM 的设置
用户可以在 Android 版 Chrome 的设置中启用或停用 FedCM。依次前往设置 > 网站设置 > 第三方登录,然后更改切换开关。
用户可以前往 chrome://settings/content/federatedIdentityApi
,在桌面版 Chrome 中执行相同操作。
路线图
我们正在努力对 FedCM 进行一些调整。如需了解详情,请参阅更新。
- 更新日志:Federated Credential Management API 更新。
我们知道仍有几项工作需要完成,包括我们从 IdP、RP 和浏览器供应商那里了解到的问题。我们认为自己知道如何解决这些问题:
- 跨源 iframe 支持:IdP 可以从跨源 iframe 中调用 FedCM(更新)。
- 个性化按钮:IdP 可以在 IdP 拥有的跨源 iframe 中,在登录按钮上显示回访用户的身份(更新)。
- 指标端点:向 IdP 提供效果指标。
此外,我们还在积极探索一些未解决的问题,包括我们正在评估或原型设计的具体方案:
- CORS:我们正在与 Apple 和 Mozilla 讨论,以确保改进 FedCM 提取的规范。
- Multiple-IdP API:我们正在探索支持多个 IdP 在 FedCM 账号选择器中协同共存的方法。
- IdP Sign-in Status API:Mozilla 发现了计时攻击问题,我们正在探索 IdP 主动通知浏览器用户的登录状态以缓解此问题的方法。(更新)
- 登录 IdP API:为了支持各种场景,当用户未登录 IdP 时,浏览器会提供一个界面,供用户在不离开 RP 的情况下进行登录。
最后,根据 Mozilla、Apple 和 TAG 审核员的反馈,我们认为仍有工作要做。我们正在努力评估以下开放性问题的最佳解决方案:
- 提高用户理解度并匹配意图:正如 Mozilla 所指出的的,我们希望继续探索不同的用户体验方案、途径以及触发标准。
- 身份属性和选择性披露:正如我们的标签审核者所指出的,我们希望提供一种机制,以便有选择地分享更多或更少的身份属性(例如电子邮件地址、年龄段、电话号码等)。
- 提升隐私属性:正如 Mozilla 在其标准立场中所建议的,我们将继续探索各种机制以提供更好的隐私保护,例如 IdP 盲人专用标识符。
- 与 WebAuthn 的关系:根据 Apple 的建议,我们很高兴看到通行密钥取得进展,并致力于在 FedCM、Passwords、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 开发者指南。
互动和分享反馈
- GitHub:阅读说明文档,提出问题并关注讨论。
- 开发者支持:在 Privacy Sandbox 开发者支持代码库中提问和参与讨论。
遵守电子隐私权法
无论是作为 IdP 还是 RP 使用 FedCM,都涉及在用户的终端设备上存储信息或访问已存储在其中的信息,因此,在欧洲经济区 (EEA) 和英国,此类活动通常需要征得用户同意,并受电子隐私权法约束。您有责任确定使用 FedCM 是否绝对必要,以提供用户明确请求的在线服务,从而免除征求用户同意的要求。如需了解详情,我们建议您阅读 Privacy Sandbox 与隐私权相关的合规性常见问题解答。