Federated Credential Management API 更新

Federated Credential Management API 已包含在 Chrome 108 中,但预计会继续发展。我们未计划进行任何破坏性更改。

这些更新适用于哪些对象?

如果您符合以下条件,这些更新就会为您送上:

  • 您是使用 Federated Credential Management API 的 IdP。
  • 您是 IdP 或 RP,希望根据自己的使用场景扩展 API - 例如,您一直在观察或参与 FedID CG 代码库的讨论,并且希望了解对 API 所做的更改。
  • 您是浏览器供应商,并且希望了解该 API 的实现状态。

如果您刚开始接触此 API 或尚未试用过,请参阅 Federated Credential Management API 简介

更新日志

如需及时了解 FedCM API 的变化,请查看我们的博客简报

Chrome 125(2024 年 4 月)

Chrome 123(2024 年 2 月)

  • 添加了对 Domain Hint API 的支持。Domain Hint API 允许 RP 在 FedCM API 调用中指定 domainHint 属性,以仅显示与该用户匹配的帐号。

Chrome 122(2024 年 1 月)

  • 添加了对 Disconnect API 的支持。借助 Disconnect API,RP 可以将其用户与 IdP 的帐号断开连接,而无需依赖第三方 Cookie。
  • 现在,当 RP 和 IdP 位于同一网站时,系统会跳过检查 /.well-known/web-identity
  • 子资源现在可以设置同网站登录状态

Chrome 121(2023 年 12 月)

  • 触发 FedCM 自动重新身份验证的放宽条件:
    • FedCM 中的自动重新验证功能仅在用户返回时触发。这意味着用户需要在每个浏览器实例上使用 FedCM 登录一次 RP,然后才能触发自动重新验证。我们最初引入此条件是为了降低跟踪器冒充身份提供方 (IdP) 并诱使浏览器在用户不知情或未同意的情况下自动重新验证用户的风险。不过,如果跟踪器可以访问 RP 上下文中的第三方 Cookie,这种设计无法保证隐私保护方面的优势。FedCM 仅提供了可通过第三方 Cookie 实现的部分功能,因此,如果跟踪器已经可以在 RP 环境中访问第三方 Cookie,那么访问 FedCM 不会带来额外的隐私风险。
      由于第三方 Cookie 的使用是合法的,并且放宽条件有助于改善用户体验,因此从 Chrome 121 开始,此行为发生了变化。我们决定放宽条件限制,将用户视为回访用户:如果第三方 Cookie 在 RP 上下文中可供 IdP 使用,Chrome 将信任 IdP 对通过 approved_clients 列表指定的用户帐号状态的声明,并触发自动重新身份验证(如果适用)。可通过以下途径使用第三方 Cookie:用户设置、企业政策、启发法(SafariFirefoxChrome)和其他网络平台 API(例如 Storage Access API)。请注意,如果 IdP 将来失去第三方 Cookie 访问权限,如果用户之前从未在 FedCM 界面上明确授予权限(例如,点击继续的身份按钮),系统仍会将其视为新用户。
      开发者无需采取任何行动。请注意,如果 IdP 拥有第三方 Cookie 访问权限,并声称用户过去已在 RP 上创建过帐号,那么此变更可能会更多地触发自动重新验证流程。

Chrome 120(2023 年 11 月)

  • 在 Chrome 120 中添加了对以下三项功能的支持:
    • Login Status APILogin Status API 是一种网站(尤其是 IdP)将其用户的登录状态告知浏览器的机制。借助此 API,浏览器可以减少向 IdP 发出的不必要的请求,并缓解潜在的计时攻击。FedCM 必须使用 Login Status API。经过此次更改后,当第三方 Cookie 被屏蔽时,启用 FedCM 时不再需要 chrome://flags/#fedcm-without-third-party-cookies 标志。
    • Error APIError API 通过显示浏览器界面来通知用户,其中包含 IdP 提供的错误信息。
    • Auto-Selected Flag API:每当发生自动重新验证或出现显式中介时,Auto-Selected Flag API 会分享是否通过与 IdP 和 RP 和 RP 的 Continue as(继续)按钮获得了明确的用户权限。只有在向用户授予 IdP 和 RP 通信权限后才会进行共享。

Chrome 117(2023 年 9 月)

Chrome 116(2023 年 8 月)

  • 在 Chrome 116 中添加了对以下三项功能的支持:
    • Login Hint API:指定要登录的首选用户帐号。
    • User Info API:获取回访用户的信息,以便身份提供方 (IdP) 可以在 iframe 中呈现个性化的登录按钮。
    • RP Context API:使用与 FedCM 对话框中的“登录”不同的标题。
  • IdP Sign-In Status API 已推出源试用。如需了解详情,请参阅 FedCM 更新:IdP Sign-In Status API、登录提示等

Chrome 115(2023 年 6 月)

  • 添加了对自动重新身份验证的支持,这让用户可以在通过 FedCM 完成初始身份验证后自动重新进行身份验证。这样可以改善用户体验,并在获得初始同意后更轻松地重新向 RP 进行身份验证。详细了解 FedCM 自动重新身份验证

Chrome 110(2023 年 2 月)

  • 对于 ID 断言端点,IdP 需要检查 Origin 标头(而不是 Referer 标头),以查看该值是否与客户端 ID 的来源相匹配。
  • FedCM 现在支持跨源 iframe。嵌入器应指定 Permissions-Policy identity-credentials-get 以允许在嵌入式跨源 iframe 中使用 FedCM API。您可以查看跨源 iframe 的示例
  • 添加了新的 Chrome 标志 chrome://flags/#fedcm-without-third-party-cookies。借助此标记,您可以通过屏蔽第三方 Cookie 在 Chrome 中测试 FedCM 功能。如需了解详情,请参阅 FedCM 文档

Chrome 108(2022 年 10 月)

  • 在文档中,“顶级清单”现在称为“已知文件”。无需对实现进行任何更改。
  • 文档中“IdP 清单”现已更名为“配置文件”。无需对实现进行任何更改。
  • “配置文件”中的 id_token_endpoint 已重命名为 id_assertion_endpoint
  • 向 IdP 发出的请求现在包含 Sec-Fetch-Dest: webidentity 标头,而不是 Sec-FedCM-CSRF: ?1 标头。

Chrome 105(2022 年 8 月)

  • 在文档中添加了重要的安全信息。身份提供方 (IdP) 需要检查 Referer 标头是否与提前在 ID 令牌端点上注册的 RP 的来源相匹配。
  • 顶级清单已从 /.well-known/fedcm.json 重命名为 /.well-known/web-identity,并且在 provider_urls 中指定的网址应包含文件名。
  • FederatedCredential 实例上的 login()logout()revoke() 方法不再可用。
  • Federated Credential Management API 现在使用新类型 IdentityCredential 而不是 FederatedCredential。这可用于特征检测,但在其他方面基本上是不可见的更改。
  • 将登录功能从 navigator.credentials.get()FederatedCredential.prototype.login() 的组合移至 navigator.credentials.get()
  • 清单中的撤消端点不再有效。
  • 对于 navigator.credentials.get() 调用,请使用 identity 字段,而不是 federated 字段。
  • url 现在是 configURL,并且必须是清单 JSON 文件的完整网址,而不是 navigator.credentials.get() 调用的路径。
  • nonce 现在是 navigator.credentials.get() 的可选参数。
  • hint 不再作为 navigator.credentials.get() 的选项提供。
const credential = await navigator.credentials.get({
  identity: {
    providers: [{
      configURL: 'https://idp.example/anything.json',
      clientId: '********',
      nonce: '******'
    }]
  }
});
const { token } = credential;

Chrome 104(2022 年 6 月)

Chrome 103(2022 年 5 月)

  • 支持桌面环境。
  • 支持在桌面设备上按 RP 设置。
  • 客户端元数据端点现在是可选的。在此端点中,隐私权政策网址也是可选的。
  • 在文档中添加了关于使用 CSP connect-src 的注意事项。

资源