重塑用户身份验证和身份验证

今年的 Google I/O 大会上,我们分享了 Chrome 如何利用强大的浏览器 API 重塑 Web 上的用户身份验证和身份验证。无论您使用的是密码、通行密钥还是联合登录,Chrome 都将提供统一的登录和注册体验,让用户体验更简单、更安全、更人性化。

探索最新的工具和最佳实践,以便改进您网站上的注册和登录流程。

查看该会话的页面或继续阅读,详细了解主要亮点。

浏览器是您的登录助手

Web 上的身份验证技术在不断发展。随着用户期望不断提高、新法规的出台以及数字身份工具生态系统的不断发展,开发者需要提供安全、流畅且可保护隐私的登录和注册流程。Chrome 随时为您提供帮助。

主要有以下三个重点领域:

  • 用户身份验证:通过联合凭据管理 (FedCM) 提供对身份联合的专有支持,从而帮助您支持强大的登录流程,实现更出色的密码管理、更轻松地采用通行密钥。
  • 身份验证:让您可以使用移动钱包中的数字凭据请求经过验证的用户详细信息,例如年龄或身份证件所有权。
  • 会话管理:通过使用设备绑定会话凭据将会话绑定到用户的设备,帮助您保护用户在登录后的安全。

探索这些工具和 API 如何助力实现这一切。

适用于网页的凭据管理工具:一个登录界面即可管理您的所有凭据

登录应该很方便。但是,由于密码、通行密钥和联合身份验证选项同时存在,用户通常会面临混乱的选择。

Chrome 正在扩展 Credential Manager API,让您可以使用一个一致的界面从浏览器请求凭据,无论类型如何。如果密码管理工具中有可用的凭据,Chrome 会在一个对话框中向用户显示这些凭据,从而降低用户的操作复杂性。

如果 Chrome 找不到凭据,我们会通知您,您可以改用自己的登录流程。

使用新的 Credential Manager API 实现统一登录流程。

这种全新体验可减少摩擦,让登录过程更加顺畅。

此功能目前处于开发者试用阶段。您可以通过启用 chrome://flags#enable-experimental-web-platform-features 标志(包括 password 凭据和 publicKey 凭据)并使用 mediation: "immediate" 启用即时中介,开始在本地使用该功能。

以下代码段展示了该函数应有的样子:

const cred = await navigator.credentials.get({
  password: true,
  publicKey: {
    challenge,
    rpId: 'example.com'
  },
  mediation: 'immediate',
});

如需了解详情,请参阅我们的文档,了解如何在 Chrome 上测试即时中介

密码:更智能、更安全

密码仍然是全球最常用的身份验证方法。浏览器和密码管理工具提供了一些工具,可让您通过密码获得更好的登录体验,但网站并不一定会采用这些工具。

Chrome 通过 Google 密码管理工具提供多种功能来支持更安全的做法,例如在注册表单中生成密码检查密码是否遭到泄露,以提醒用户凭据是否已泄露。

下面列出了一些工具,可帮助您改进网站上使用密码的体验。

自动更改密码:一键解决已泄露的密码问题

自动更改密码功能将于今年晚些时候面向部分网站推出,可让用户在其凭据面临风险时更轻松地做出响应。

当 Chrome 在登录过程中检测到密码已泄露时,Google 密码管理工具会提示用户选择自动修正密码。

在受支持的网站上,Chrome 可以生成安全系数高的替代密码,并自动为用户更新密码。

这有助于用户保护其账号安全,无需翻找账号设置或中途放弃流程,从而减少摩擦。

正在使用“自动更改密码”功能。

您可以采取一些措施来优化网站,使其能够与浏览器和密码管理工具协同工作。

  • 自动补全优化:使用 autocomplete="current-password"autocomplete="new-password" 触发自动填充和存储。请参阅我们的登录注册指南。
  • 更改密码网址:将 <your-website-domain>/.well-known/change-password 重定向到您网站上的密码更改表单(众所周知的密码更改网址)。检测到弱密码后,密码管理工具可以将用户定向至更改密码页面。

无缝凭据共享:一次登录即可在应用和网站间切换

密码管理工具不仅仅用于存储密码。它们有助于防范钓鱼式攻击,因为只有在网域匹配时才会提供凭据。但是,如果您的服务跨多个网域和平台,用户仍可能会遇到问题。

例如:

  • 用户在 Android 应用中注册,之后在笔记本电脑上访问您的网站
  • 或者,您提供多个接受同一登录信息的网域或应用

如果没有共享凭据,我们将不会提供已保存的密码,因此用户可能很难登录。

无缝凭据共享有助于解决此问题。通过关联应用和网站,Google 密码管理工具可在这些资源之间无缝共享密码,从而让登录体验更加顺畅、简洁。

eBay 成功登录率提高了 10%。如需了解详情,请参阅以下案例:eBay 如何通过无缝凭据共享将登录成功率提高了 10%

通行密钥:一种更简单、更安全的登录方式

通行密钥是一种更安全的密码替代方案,可帮助用户使用设备解锁机制(例如生物识别 [例如指纹或人脸])、PIN 码或图案安全地登录网站和应用。它们具有防钓鱼功能、易于使用,并且是浏览器和操作系统中广泛采用的标准。

跨平台同步通行密钥

用户会将通行密钥存储在密码管理工具中,但某些管理工具不会同步通行密钥。如果用户尝试从无法使用通行密钥的设备登录,可能会遇到问题。在这种情况下,Chrome 会显示一个二维码,以便用户通过存储凭据的其他设备完成登录。

为了减少这种不便,Chrome 在 Google 密码管理工具中添加了通行密钥同步支持。

现在,通行密钥已支持 iOS,Google 密码管理工具中的通行密钥可在所有主要平台(包括 Android、Windows、macOS、ChromeOS 和 Linux)上同步。如需了解详情,请参阅支持的环境一文。

即时中介:仅请求可用的凭据

部分用户并未在每部设备上同步通行密钥。如果在本地找不到通行密钥,Chrome 可能会显示一个二维码,以便用户使用存储凭据的其他设备。这种方法虽然可行,但可能会增加使用难度。

为了减少这种摩擦,Chrome 支持一个新选项:mediation: 'immediate'。这样,您的网站便只能请求当前设备上已提供的凭据。如果未找到任何内容,用户将看不到任何内容。无提示、无二维码、无干扰。Chrome 会告知您,以便您改为显示常规登录界面。

这样可以避免为没有凭据的用户显示二维码流程,从而改善体验。

当用户执行任何有意义的操作(例如点击“登录”或“结账”按钮)时,请使用此方法。将 navigator.credentials.get()mediation: 'immediate' 搭配使用时,如果当前设备上有通行密钥,Chrome 会立即提示用户。如果没有,用户可以不受干扰地继续操作,您可以显示密码字段、动态密码或其他方法。

您还可以通过设置 password: true 来提高帮助用户登录的几率。这样,Chrome 就可以返回已保存的密码以及通行密钥(如果有)。

以下示例展示了如何请求使用即时中介的通行密钥:

navigator.credentials.get({
  publicKey: {
    challenge: new Uint8Array([/* your challenge here */]),
    rpId: 'example.com'
  },
  mediation: 'immediate',
  //< password: true == enable this to request passwords alongside passkeys
}).t>hen(credential = {
  // Use the credential for sign in
>}).catch(error = {
  if (error.name === 'NotAllowedError') {
    // No credential found on this device, fall back to another method
  } else {
    console.error('Error during sign-in', error);
  }
});

此功能已在开发者教程中推出,您可以参阅 WebAuthn 即时中介说明,详细了解此功能。

自动创建通行密钥

许多用户仍在使用密码登录。为了帮助他们采用通行密钥,Chrome 引入了一个 API,可帮助您在用户成功通过密码登录后自动为其创建通行密钥。

您只需请求创建通行密钥即可。如果用户有最近使用的已保存密码,密码管理工具会创建通行密钥,并告知您是否成功。通行密钥可用后,用户可能会收到通知。这不会删除用户的密码。

如果未创建通行密钥,浏览器不会干扰用户或显示任何界面。

这样,用户就可以逐步采用通行密钥,而不会中断登录流程。

此功能从 Chrome 136 开始提供,您可以参阅帮助用户更顺畅地采用通行密钥一文详细了解。

使用 Signal API 清理通行密钥

如果用户从您的网站或应用中删除通行密钥,其密码管理工具在登录时可能仍会提供该通行密钥,导致登录失败和用户感到困惑。借助 Signal API,您的应用可以在移除通行密钥时通知密码管理工具,从而确保凭据列表保持简洁和准确。

您还可以向密码管理工具发送已知通行密钥的列表,以帮助确保通行密钥处于最新状态。这样,它就可以为用户清理所有未使用的通行密钥。

从 Chrome 132 开始,Signal API 可供使用。如需了解详情,请参阅使用 Signal API 确保通行密钥与服务器上的凭据保持一致

导入和导出:随身携带您的凭据

用户在密码管理工具之间切换时,通常会遇到转移凭据的问题。Chrome 将添加对通行密钥和密码的导入和导出支持,基于 FIDO 标准。用户无需处理文件。

自动填充增强功能

为了以人性化的方式显示已存凭据,Chrome 可以在登录表单准备就绪时自动显示自动填充下拉菜单。只需在表单中同时支持密码和通行密钥,并将自动聚焦应用于输入字段即可。

这样做很有用,因为系统会显示凭据,而无需用户点击字段。用户只需点按要使用的凭据,即可减少摩擦。

如需了解详情,请参阅通过表单自动填充功能实现通行密钥登录一文。

更新了学习资源

我们对通行密钥学习资源进行了全面改进,以确保您能够为用户提供尽可能出色的通行密钥体验。

FedCM:改进联合身份

借助 Federated Credential Management API (FedCM),用户可以使用注重隐私保护和用户体验的浏览器中介流程,通过受信任的身份提供方登录。FedCM 有助于简化 Web 上的注册和登录体验,让开发者可以更轻松地支持无缝身份验证。

更智能的界面

现在,借助 FedCM,您可以更好地控制登录提示的显示方式和时间。 它支持两种模式

  • 被动模式:当用户返回您的网站时,浏览器会自动显示已知身份提供程序的登录提示。这对于熟悉的用户非常有用,但如果显示得过早,可能会给用户造成干扰。
  • 启用模式:只有在用户点击登录按钮后,系统才会显示提示,从而打造更为慎重的体验。

这一点很重要,因为它可以减少混淆并避免让用户感到意外。在活跃模式下,用户可以留在您的网站上,而不会看到重定向或其他对话框。

不过,Chrome 也在努力让无效模式变得更智能。未来的更新将尝试采用机器学习技术,结合网站和用户信号来确定何时以及如何显示界面,以提供最佳用户体验。

更灵活的 API

借助 FedCM,您可以更灵活地控制用户使用联合身份登录的方式。

例如,借助支持多个身份提供方,您可以向用户显示提供方列表,而不是仅显示一个提供方。这意味着,用户可以选择适合自己的账号,从而提高登录率,同时保护用户隐私。

浏览器仍会协调每个步骤。身份提供程序只能看到用户明确允许的内容,并且在整个流程中都会保护隐私。

数字凭据:快速、私密的在线身份证件验证

数字凭据在全球范围内越来越普遍。借助这些 API,用户可以通过数字钱包验证年龄、学生身份或身份等属性。借助 Digital Credentials API,用户可以直接与网站共享其移动钱包中的经过验证的声明(例如年龄或执照状态)。

我们正在与 W3C 和行业领导者合作,将其打造为一种标准。我们的目标是在各个平台上提供简单易用、安全可靠、注重隐私保护且一致的体验。

一些有趣的功能:

设备绑定会话凭据:保持登录状态,保持保护

用户会话通常通过 Cookie 进行标识,而恶意软件可能会从用户设备中窃取 Cookie。

设备绑定会话凭据可将会话与特定设备相关联。这样可以降低会话盗用风险,并在您登录电子邮件或社交媒体账号或访问政府服务时加强保护。

DBSC 可将身份验证与登录期间使用的设备相关联,从而帮助开发者打造更安全、更稳定的会话。

反馈

我们非常期待您对我们分享的所有内容提供反馈。试用这些功能,浏览本文档中的链接,并告诉我们您的想法。

提供反馈