Chrome 支持在 FedCM 中自动重新进行身份验证
Federated Credential Management API (FedCM) 是 用于实现可保护隐私的身份联合的 Web API。借助身份联合, RP(依赖方)依靠 IdP(身份提供方)向用户提供 账号,而无需使用新的用户名和密码。
FedCM 让浏览器能够了解 RP 和 IdP 所处的情境 交换信息。它会将相关信息和权限告知用户 共享级别并防止意外滥用行为。FedCM 已在 Chrome 版本 108 及更高版本。
在 Chrome 115 中,FedCM 开始支持自动重新身份验证, 改善用户体验,并简化向 RP 重新进行身份验证的流程 。
自动重新验证
目前,在用户在使用 IdP 的 RP 上创建联合账号之后 通过 FedCM API 配置,那么下一次他们 请访问所需网站,并在界面中执行相同的步骤。 这意味着,用户将需要手动进行明确地重新确认, 重新验证身份并继续登录流程。
尽管在用户创建 联合账号来阻止跟踪(这是 FedCM 的主要目标之一)、 在用户浏览过一次之后,这会带来不必要的麻烦: 用户授予允许 RP 与 IdP 之间的通信的权限; 强制授予其他明确用户权限并不会在隐私或安全方面带来任何好处 对之前已确认的内容进行确认。 因此,我们推出了更精简的用户体验,RP 可以选择 回访用户
FedCM 自动重新验证 (简称“auto-reauthn”)可让用户在 会在通过 FedCM 完成初始身份验证后返回。“最初的 身份验证”这是指用户创建账号或登录 RP 的 网站,方法是点按 FedCM 登录对话框中的“以...的身份登录...”按钮 我们第一次在同一个浏览器实例上使用它们
<ph type="x-smartling-placeholder">![用户点按以创建账号或进行身份验证的对话框。](https://google-developers.gonglchuangl.net/static/privacy-sandbox/assets/images/blog/a-dialog-user-taps-to-c-c86e154d4a899.png?authuser=1&hl=zh-cn)
选择自动重新验证选项
我们即将推出自动重新验证功能,以便提供更好的用户体验,并与
默认用户体验在没有代码的情况下会有所不同
更改。启用自动重新验证功能后,浏览器会根据
针对您在开发者提供的mediation
选项中选择的选项
navigator.credentials.get()
。
const cred = await navigator.credentials.get({
identity: {
providers: [{
configURL: "https://idp.example/fedcm.json",
clientId: "1234",
}],
},
mediation: 'optional', // this is the default
});
mediation
是凭据管理
API,
其行为方式
用途
PasswordCredential
和
FederatedCredential
目前,Google Cloud
PublicKeyCredential
。该属性接受以下四个值:
'required'
:始终需要中介才能继续操作,例如,点击 “继续”按钮。如果您的用户需要 每次需要进行身份验证时都明确授予权限。'optional'
(默认):如果可能自动重新验证,则需要中介。周三 建议您在登录页面上选择此选项。'silent'
:如果可能,会自动重新验证,且无需验证 中介。我们建议在除 但您希望让用户保持登录状态, 例如,货运网站上的商品页面或新闻上的文章页面 网站。'conditional'
:用于 WebAuthn,目前不适用于 FedCM。
此调用会在以下情况下自动重新验证:
- FedCM 可供使用。例如,用户没有停用 FedCM 全局或设置中针对 RP。
- 用户仅使用一个具有 FedCM API 的账号登录此 。
- 用户已使用该账号登录 IdP。
- 过去 10 分钟内未发生自动重新验证。
- RP 尚未拨打电话
之后价格为
navigator.credentials.preventSilentAccess()
再次登录即可。
在满足上述条件时,系统将尝试自动重新进行身份验证
用户在 FedCM navigator.credentials.get()
被调用后立即启动。
通过 preventSilentAccess()
强制执行中介
在用户退出登录后立即自动重新进行身份验证不会导致 提供出色的用户体验因此,FedCM 会有 10 分钟的平静期 并防止出现此类行为也就是说 每 10 分钟最多发送一次,除非用户在 10 分钟。RP 应调用 navigator.credentials.preventSilentAccess() 以 明确请求浏览器在用户退出账号时停用自动重新验证功能 明确禁止 RP,例如点击退出按钮。
function signout() {
navigator.credentials.preventSilentAccess();
location.href = '/signout';
}
用户可以在设置中选择停用自动重新验证
用户可以在“设置”菜单中选择停用自动重新验证功能:
- 在桌面版 Chrome 中,前往
chrome://password-manager/settings
>登录 。 - 在 Android 版 Chrome 中,打开设置 >密码管理工具 >点按某个 右上角的齿轮图标 >自动登录。
通过停用切换开关,用户可以选择停用所有自动重新验证行为 。此设置会在设备间存储和同步(如果用户 在 Chrome 实例上登录了 Google 账号, 。
分享反馈
如果您在测试 FedCM,欢迎分享您的反馈或您遇到的任何问题 crbug.com 上位于 Blink>Identity>FedCM 组件下。
照片由 Noah Samuel Franz 拍摄,由 Unspin 提供