跳到主要内容

配置多因素认证 (MFA)

在 Logto 中配置 MFA 设置

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

全局 MFA 配置

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

  1. 前往:控制台 > 多因素认证 (MFA)
  2. 为你的用户启用支持的验证因子。
    1. 主因子:
      • Passkeys (WebAuthn):适用于支持设备生物识别或安全密钥等的 Web 产品的高安全性选项,确保强大保护。
      • 身份验证器 App OTP:最常见且被广泛接受的方法。使用如 Google Authenticator 或 Authy 等身份验证器应用生成的基于时间的一次性密码 (TOTP)。
      • 短信验证:通过短信向用户注册手机号发送一次性验证码的便捷方式,适合喜欢基于手机认证 (Authentication) 且无需额外应用的用户。
      • 邮箱验证:向用户注册邮箱发送一次性验证码的广泛可用方式,适用于所有平台和设备的用户。
    2. 备份因子:
      • 备份码:当用户无法验证上述任何主因子时,作为备选方案。启用此选项可降低用户成功访问的阻力。
  3. 从下拉菜单中选择 要求 MFA 策略。此策略控制用户在登录时必须完成 MFA 的时机:
    • 可选 MFA:让用户自行决定是否为其账户安全启用 MFA。用户可在登录时跳过 MFA 设置,稍后通过自助账户设置页面进行配置。了解更多 关于实现用户账户设置页面的信息。
    • 自适应 MFA:仅在登录行为异常时应用 MFA,低风险登录流程更顺畅,可疑登录则需额外验证。此模式依赖你已启用的 MFA 设置(至少需启用一个 MFA 因子),适用于终端用户登录流程,不依赖设备指纹或其他敏感个人数据。
    • 强制 MFA:要求所有用户每次登录都完成 MFA。未设置 MFA 的用户必须先完成设置才能继续。
    • 当选择 可选 MFA自适应 MFA 时,可配置 MFA 设置提示策略:
      • 不提示用户设置 MFA:用户登录时不会被提示设置 MFA。
      • 在注册时提示用户设置 MFA:新用户注册时会被提示设置 MFA,现有用户将在下次登录时看到提示。用户可跳过此步骤,且不会再次出现。
      • 注册后首次登录时提示用户设置 MFA:新用户注册后第二次登录时会被提示设置 MFA,现有用户将在下次登录时看到提示。用户可跳过此步骤,且不会再次出现。

当 MFA 为可选且 Logto 决定提示用户时,流程会首先显示一个名为 开启两步验证 的启用 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 策略选择为 可选 MFA 时,用户才可跳过此设置流程。

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

MFA 验证流程

已设置 MFA 的用户在登录时会被提示使用其配置的 MFA 因子验证身份。验证因子取决于 Logto 中的 MFA 配置和用户设置。

如果用户使用 passkey 登录,Logto 会跳过单独的 MFA 验证步骤。因为用于登录的 passkey 本身就是 WebAuthn MFA 因子。

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

MFA 管理

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

构建账户中心

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

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

登录后 MFA 设置提示

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

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

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

在控制台管理用户 MFA

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

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

常见问题

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

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

场景 1:无 MFA 因子剩余

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

场景 2:仍有备份码

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