跳到主要内容

配置多因素认证 (MFA)

在 Logto 中配置 MFA 设置

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

全局 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,使低风险登录流程更顺畅,而可疑登录则需额外验证。为做出判断,Logto 会评估高级上下文信号,如用户的不活跃程度、当前登录环境是否与近期旅行相关的登录模式大致一致、网络连接状态以及其他会话或环境指标。此模式依赖于你已启用的 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。在 自适应 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自适应 MFA 且启用了提示策略,Logto 可能会在任何 MFA 因子绑定开始前先显示 开启两步验证 页面。
    • 可选 MFA 下,用户可跳过此页面或点击 开启两步验证 继续。在 自适应 MFA 下,一旦被提示,用户必须继续绑定 MFA。
  3. 设置 MFA 主因子:用户被提示设置主 MFA 因子(如 passkey、认证器 app OTP、短信码或邮箱码)。
    • 若启用了多个主因子,用户可选择自己喜欢的方式。
    • 若主因子与注册标识符相同(如短信或邮箱),则会自动验证,用户可跳过验证步骤,直接进入下一步(如“添加另一个两步验证”或“保存你的备份因子”)。
    • 要求 MFA 策略选择为 可选 MFA,用户可通过点击“跳过”按钮跳过此步骤。
  4. 设置 MFA 备份因子:若启用了 备份码,用户在成功配置主认证因子后会被提示保存备份码。系统会自动生成备份码并展示给用户,用户可下载并安全保存。用户必须手动确认备份码,才能完成 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 策略。
  • 这种方式可防止用户在无主因子的情况下被锁定账户。