跳到主要内容

配置多因素认证 (MFA)

在 Logto 中配置多因素认证 (MFA) 设置

Logto 提供灵活的多因素认证 (MFA) 配置选项,以满足不同的安全需求。你可以为所有用户在全局层面配置 MFA,或针对多租户应用按组织 (Organization) 启用。

全局 MFA 配置

按照以下步骤在用户的 Logto 登录流程中启用 MFA:

  1. 导航至:控制台 > 多因素认证 (MFA)
  2. 为你的用户启用支持的验证因子。
    1. 主验证因子:
      • Passkeys (WebAuthn):适用于支持设备生物识别或安全密钥等的 Web 产品的高安全性选项,确保强大保护。
      • 身份验证器应用 OTP:最常见且被广泛接受的方法。使用如 Google Authenticator 或 Authy 等身份验证器应用生成的基于时间的一次性密码 (TOTP)。
      • 短信验证:通过短信向用户注册手机号发送一次性验证码的便捷方式,适合偏好移动端认证 (Authentication) 且无需额外应用的用户。
      • 邮箱验证:向用户注册邮箱发送一次性验证码的广泛可用方式,适用于所有平台和设备的用户。
    2. 备份验证因子:
      • 备份码:当用户无法验证上述主验证因子时,作为备选方案。启用此选项可降低用户成功访问的阻力。
  3. 选择是否启用 强制 MFA
    • 启用:用户将在登录过程中被要求设置 MFA,且无法跳过。如果用户未能设置 MFA 或删除了 MFA 设置,他们将无法访问账户,直到重新设置 MFA。
    • 禁用:用户可在注册流程中跳过 MFA 设置。之后可通过自助账户设置页面设置 MFA。了解更多 关于实现用户账户设置页面。并继续选择 MFA 设置提示的策略:
      • 不要求用户设置 MFA:用户在登录时不会被提示设置 MFA。
      • 在注册时提示用户设置 MFA:新用户在注册时会被提示设置 MFA,现有用户将在下次登录时看到提示。用户可跳过此步骤,且不会再次出现。
      • 注册后首次登录时提示用户设置 MFA:新用户在注册后第二次登录时会被提示设置 MFA,现有用户将在下次登录时看到提示。用户可跳过此步骤,且不会再次出现。
提示:

如果你需要在用户跳过 MFA 注册后再次提示,请重置其跳过状态,下次登录时会显示设置界面。管理员可使用 Management API(PATCH /api/users/{userId}/logto-configs),开发者在自助流程中可调用 Account API(PATCH /api/my-account/logto-configs)。Management API 参考 · Account API 参考

MFA 设置

组织 (Organization) 级 MFA 配置

对于支持 组织 (Organizations) 的多租户架构产品,大多数情况下无需对所有用户强制要求 MFA。你可以按组织 (Organization) 启用 MFA,根据每个客户的需求定制要求。开始使用请参考 为组织成员要求 MFA

多因素认证 (MFA) 部分,将 组织启用 MFA 后用户的 MFA 设置提示 设置为 下次登录时提示用户设置 MFA(不可跳过)。任何要求 MFA 的组织成员将在下次登录时被强制要求完成 MFA 设置,且无法跳过。

MFA 用户流程

MFA 设置流程

启用 MFA 后,用户将在登录和注册过程中被提示设置 MFA。仅当“强制 MFA”策略被禁用时,用户才可选择跳过设置流程。

  1. 访问登录或注册页面:用户进入登录或注册页面。
  2. 完成登录或注册:用户在登录或注册流程中完成身份验证 (Authentication)。
  3. 设置主 MFA 验证因子:用户被提示设置主 MFA 验证因子(如 passkey、身份验证器应用 OTP、短信码或邮箱码)。
    • 如果启用了多个主验证因子,用户可选择偏好方式。
    • 若主验证因子与注册标识符相同(如短信或邮箱),则会自动预验证,用户可跳过验证步骤,直接进入下一步(如“添加另一个两步验证”或“保存你的备份因子”)。
    • 若“强制 MFA”策略被禁用,用户也可通过点击“跳过”按钮跳过此步骤。
  4. 设置 MFA 备份因子:若启用了 备份码,用户在成功配置主认证 (Authentication) 因子后会被提示保存备份码。系统会自动生成备份码并展示给用户,用户可下载并安全保存。用户需手动确认备份码以完成 MFA 设置流程。
MFA 设置流程

MFA 验证流程

已设置 MFA 的用户在登录时会被要求通过已配置的 MFA 因子验证身份。验证因子取决于 Logto 中的 MFA 配置和用户设置。

  • 若用户仅设置了一个因子,将直接进行验证。
  • 若用户为两步验证 (2FA) 设置了多个因子,系统将根据以下优先级规则展示验证选项:
    • Passkey 优先:若用户配置了 passkey,将默认作为验证方式。
    • 上次使用优先:若无 passkey,系统优先展示用户上次成功使用的验证方式。
    • 选择列表:若上述优先级均不适用,两步验证页面将展示所有可用的已绑定验证方式供用户选择。
    • 用户可随时点击“尝试其他验证方式”切换不同验证选项。
  • 若所有启用的主验证因子均不可用,且启用了备份码,用户可使用一次性备份码验证身份。
MFA 验证流程

MFA 管理

除登录 / 注册时的初始设置外,用户可通过自助账户中心管理 MFA 设置。这样用户可根据需求灵活绑定或解绑 MFA 因子。

构建账户中心

你可以使用 Logto 的 Account API 构建完整的账户中心,允许用户:

  • 绑定新的 MFA 因子:添加额外的身份验证器应用、passkey 或重新生成备份码
  • 解绑已有的 MFA 因子:移除不再使用的 MFA 方式
  • 查看当前 MFA 状态:查看当前已配置的 MFA 因子

登录后 MFA 设置提示

对于注册时不强制 MFA 的应用,你可以实现智能提示以鼓励用户设置 MFA:

  • 条件提示:根据用户行为或账户价值展示 MFA 设置建议
  • 安全仪表盘:展示安全分数,启用 MFA 后分数提升
  • 渐进式引导:将 MFA 设置作为渐进式安全增强流程的一部分

了解更多关于如何用 Account API 实现这些模式。

在控制台管理用户 MFA

控制台 > 用户管理 中,管理员可高效管理用户 MFA 设置:

  • 查看用户 MFA 状态:检查每个用户已启用哪些 MFA 因子。
  • 移除用户 MFA:删除用户所有 MFA 因子,用户需重新设置 MFA。

常见问题

管理员移除用户现有 MFA 因子后会发生什么?

当管理员移除用户所有主 MFA 因子(passkey、身份验证器应用 OTP、短信或邮箱)后,用户下次登录时会出现以下情况:

场景 1:无 MFA 因子剩余

  • 若不存在任何 MFA 因子(包括无备份码),且 MFA 策略 要求 MFA,用户将被允许无 MFA 验证直接登录,并立即被提示重新设置 MFA。

场景 2:仍有备份码

  • 若仍有备份码可用,用户登录时需先通过备份码验证。
  • 备份码验证成功后,用户会被提示设置新的主 MFA 因子。
  • 用户是否可跳过设置取决于你配置的 MFA 策略。
  • 这种方式可防止用户在无主因子的情况下被锁定账户。