跳到主要内容

配置多因素认证 (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 策略。
  • 这种方式可防止用户在无主要因子可用时被锁定账户。