Federated Credential Management API 更新

Federated Credential Management API 随 Chrome 一起提供 108,但预计会继续 不断演变。我们未计划进行任何破坏性更改。

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

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

  • 您是使用 Federated Credential Management API 的 IdP。
  • 您是 IdP 或 RP,希望根据自己的用途扩展此 API 大小写 - 例如或参与 FedID CG 代码库中的讨论 并希望了解对 API 所做的更改
  • 您是浏览器供应商,希望了解后续实现情况 该 API 的状态。

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

更新日志

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

Chrome 125(2024 年 4 月)

Chrome 123(2024 年 2 月)

  • 添加了对 Domain Hint API 的支持。域提示 API 让 RP 在 FedCM API 调用中指定 domainHint 属性,以仅显示匹配的 创建该用户的账号

Chrome 122(2024 年 1 月)

Chrome 121(2023 年 12 月)

  • 触发 FedCM 自动重新身份验证的放宽条件: <ph type="x-smartling-placeholder">
      </ph>
    • Google Cloud 控制台中的自动重新身份验证功能 FedCM 仅在用户返回时触发。这意味着 都需要在每个浏览器实例上使用 FedCM 登录一次 RP, 然后才能触发自动重新验证。这个条件最初是 旨在降低追踪器冒充身份的风险 提供方 (IdP) 以及诱骗浏览器自动重新验证用户身份 不知情或未经其同意。不过,这种设计并不能保证 如果跟踪器有权访问 RP 背景信息。FedCM 仅通过 第三方 Cookie,因此,如果跟踪器已经拥有第三方 Cookie 的访问权限 Cookie,访问 FedCM 不会带来额外的隐私保护 风险。
      由于第三方 Cookie 的使用是合法的,并且放宽了 可改善用户体验,从 Chrome 121 开始,此行为发生了变化。 我们决定放宽条件限制, 返回:如果 RP 上的 IdP 可以使用第三方 Cookie 情境,Chrome 会信任 IdP 关于用户账号状态的声明 (通过 approved_clients 列表指定)并触发自动重新身份验证 (如果适用)。可通过以下设置使用第三方 Cookie:用户设置、 企业政策、启发式算法 (SafariFirefoxChrome) 以及其他网络平台 API(如 Storage Access API)。注意事项 如果 IdP 将来失去第三方 Cookie 访问权限, 从未在 FedCM 界面上明确授予权限(例如, 新用户。
      开发者无需采取任何行动。请注意,自动重新验证流程 如果 IdP 拥有第三方 Cookie 访问权限,则此更改会更多触发 并声称用户过去已在 RP 上创建过账号。

Chrome 120(2023 年 11 月)

  • 在 Chrome 120 中添加了对以下三项功能的支持: <ph type="x-smartling-placeholder">
      </ph>
    • Login Status API登录状态 API是一个 这种机制是指网站(尤其是 IdP) 登录状态。利用此 API,浏览器可以减少对 降低潜在的定时攻击Login Status API 是一个 FedCM 的要求。 进行这项更改后,chrome://flags/#fedcm-without-third-party-cookies 标志 当第三方 Cookie 被屏蔽时,不再需要启用 FedCM。
    • Error APIError API API会通知 用户。
    • Auto-Selected Flag API自动选择标记 API 分享是否通过点按 同时使用 IdP 和 RP 和 RP 的继续按钮(每次自动重新验证身份时) 或出现了明确的中介。仅在用户 授予 IdP 和 RP 通信的权限。

Chrome 117(2023 年 9 月)

Chrome 116(2023 年 8 月)

  • 在 Chrome 116 中添加了对以下三项功能的支持: <ph type="x-smartling-placeholder">
      </ph>
    • Login Hint API:指定要登录的首选用户账号。
    • User Info API:获取回访用户的信息,以便身份提供方 (IdP) 可以在 iframe 中呈现个性化的登录按钮。
    • RP Context API:使用与“登录”不同的标题。
  • 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,以允许在嵌入式跨源中使用 FedCM API iframe。您可以参阅示例 跨源 iframe。
  • 添加了新的 Chrome 标志 chrome://flags/#fedcm-without-third-party-cookies。利用此标记,您可以在 Chrome 中测试 FedCM 功能 来阻止第三方 Cookie如需了解详情,请参阅 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 标头是否与源站匹配 提前登记的 RP ID 令牌端点
  • 顶级清单已从 /.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()
  • 清单中的撤消端点不再有效。
  • 对于以下查询,请使用 identity 字段而不是 federated 字段 navigator.credentials.get() 次通话。
  • 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 的注意事项。

资源