8.8. Passkeys


Red Hat build of Keycloak 提供对 Passkeys 的支持。Red Hat build of Keycloak 充当 Passkeys Relying Party (RP)。

Passkey 注册和身份验证使用 WebAuthn 相同的功能执行。更具体地说,PasskeysLoginLess WebAuthn 相关,因为它们尝试在登录期间避免任何密码。因此,红帽构建的 Keycloak 用户可以使用 免密码 变体现有的 WebAuthn 注册和验证进行 Passkey 注册和身份验证

Passkeys 功能以两种不同的方式以默认身份验证表单无缝集成。激活后,条件 UI 和模态 UI 都以显示用户名输入的形式提供(如 Username Password FormUsername Form)。此外,密码形式,当已选择用户名时,如果当前用户有无密码的 WebAuthn 凭据关联,则始终通过 passkey 显示模态 UI 按钮。这样,模态和条件 UI 可用于从头开始执行需要用户名和密码的完整登录,当身份验证过程中已选择用户名时(因为重新身份验证,或在进程没有使用 passkey 之前选择了用户名时,才会显示模态 UI。

Passkeys 已添加到以下验证器实现中:

  1. 用户名密码表单 :红帽构建的 Keycloak 中默认使用的用户名和密码表单。
  2. 用户名表单 :用户名表单单独显示,通常后跟密码表单。当在两个不同的步骤中向用户显示用户名和密码字段时,会使用这个验证器。
  3. Password Form: 使用 Username Form 中的 Passkeys 进行身份验证会跳过下一个 Password Form 执行。Password Form 实现检查用户是否使用免密码 WebAuthn 凭证进行身份验证,如果是这种情况,则不请求密码。如果无法跳过 Password Form,它允许使用模态 UI 在帐户关联 passkey 凭证时验证用户。
  4. Organization Identity - First Login: 在为域启用 机构功能时使用的组织 表单。在这一步中使用 Passkeys 可避免后续执行用户名和密码表单的方式与用户名表单相同。
  5. 用户名 Password Form for identity provider re-authentication: 类似于默认的 Username Password Form,但在第一个登录流中使用以重新验证并证明帐户的所有权。现在,模态 UI 按钮可以使用 passkeys 重新验证。

最后,如果之前使用 passkey 验证帐户,则修改默认 浏览器流以跳过流浏览器 - Conditional 2FA因此,在域中启用了 passkeys 时,只有在用户引入了通用密码来登录时,才会显示 2FA,而不是在使用 passkey 时显示。新的 Condition - 凭证添加到 子流中,以检查之前显示的凭证。如果要始终使用 2FA,则只能将条件从 Required 改为 Disabled。如需更多信息,请参阅 条件流中的条件

注意

同步 Passkeys 和设备密集型 Passkeys 可用于 Same-Device 和跨设备身份验证(CDA)。但是,Passkeys 操作成功取决于用户的环境。确保在 环境 中 可以成功执行哪些操作。

Conditional User Interface (UI)或 autofill 是与 passkeys 相关的功能,其中的用户名输入(键入了用户名的字段)会使用 webauthn 自动填充详细令牌标记(例如,使用属性 autocomplete ="username webauthn")。当用户在此类输入字段中点击时,用户代理(browser)可能会导致用户从中选择的发现凭证列表,并可能为用户提供尝试其他 方式 的选项。如果用户选择提供的 passkeys 之一,红帽构建的 Keycloak 启动 WebAuthn 身份验证,并避免任何密码输入。

LoginLess WebAuthn 相比,身份验证可以提高用户的身份验证体验。

使用 Chrome 浏览器通过条件 UI 自动填充进行 Passkey 身份验证

Passkey Authentication with Conditional UI Autofill using Chrome browser

注意

此身份验证使用 WebAuthn Conditional UI。因此,这个身份验证成功取决于用户的环境。如果环境不支持 WebAuthn Conditional UI,用户应使用直接模态 UI 或用户名和密码登录。

8.8.2. 使用 Modal UI 的 Passkeys 身份验证

然而,因为条件 UI 有时无法向用户显示所有凭证,因此模态 UI 始终 可以使用带有 Passkey 的 Sign in 启动。Modal 用户界面(UI)确保所有 passkeys 都可用,包括存储在硬件令牌或其它无法在没有用户交互的情况下枚举的设备上。

当用户已选择时,模态 UI 按钮也会以密码表单显示,例如在常见 Username Password Form 中重新验证时。在这种情况下,模态 UI 仅限于红帽为帐户定义的无密码 WebAuthn 凭证。

使用 Chrome 浏览器通过 Modal UI 进行 Passkey 身份验证

Passkey Authentication with Modal UI using Chrome browser

8.8.3. 设置

为默认表单设置 Passkey 身份验证,如下所示:

  1. (如果还没有完成)检查启用了 WebAuthn Register Passwordless 所需的操作。使用 Enable WebAuthn Authenticator Registration 中所述的步骤,但使用 WebAuthn Register Passwordless 而不是 WebAuthn Register
  2. 按照 LoginLess WebAuthn 中的说明,配置 WebAuthn 密码无策略。在 Admin Console, Authentication 部分中执行配置,在 Policies WebAuthn Passwordless Policy 中。免密码策略的默认配置通常足以进行正确的 passkeys 集成。

    注意

    存储容量通常限制在硬件 passkeys 上,这意味着您无法在您的 passkey 上存储多个可发现的凭证。但是,如果您使用 Google 帐户支持的 Android 电话或由 Bitwarden 支持的 iPhone,则可以缓解这个限制。

  3. WebAuthn Passwordless Policy 选项卡中,激活底部的 Enable Passkeys 选项。这个交换机是真正在域中启用 passkeys 的切换。
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部