配置多因素认证 (MFA)
在 Logto 中配置多因素认证 (MFA) 设置
Logto 提供灵活的多因素认证 (MFA) 配置选项,以满足不同的安全需求。你可以为所有用户在全局层面配置 MFA,或针对多租户应用按组织 (Organization) 启用。
全局 MFA 配置
按照以下步骤在用户的 Logto 登录流程中启用多因素认证 (MFA):
- 前往:控制台 > 多因素认证 (MFA)。
- 为你的用户启用支持的验证因子。
- 主要因子:
- Passkeys (WebAuthn):适用于支持设备生物识别或安全密钥等的 Web 产品的高安全性选项,确保强大保护。
- 身份验证器应用 OTP:最常见且被广泛接受的方法。使用如 Google Authenticator 或 Authy 等身份验证器应用生成的基于时间的一次性密码 (TOTP)。
- 短信验证:通过短信向用户注册手机号发送一次性验证码的便捷方式,适合偏好移动端认证 (Authentication) 且无需额外应用的用户。
- 邮箱验证:向用户注册邮箱发送一次性验证码的广泛适用方式,适合所有平台和设备的用户。
- 备份因子:
- 备份码:当用户无法验证上述任何主要因子时,作为备选方案。启用此选项可降低用户访问的阻力。
- 主要因子:
- 选择是否启用 强制要求 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 参考
组织 (Organization) 级别 MFA 配置
对于支持 组织 (Organizations) 的多租户架构产品,大多数情况下你无需对所有用户强制要求 MFA。你可以按组织 (Organization) 启用 MFA,根据每个客户的需求定制要求。开始操作请参考 为组织成员强制要求 MFA。
在 多因素认证 (MFA) 部分,将 组织启用 MFA 后用户的 MFA 设置提示 设置为 下次登录时提示用户设置 MFA(不可跳过)。任何要求 MFA 的组织成员将在下次登录时被强制要求完成 MFA 设置,且无法跳过。
MFA 用户流程
MFA 设置流程
启用 MFA 后,用户将在登录和注册过程中被提示设置 MFA。仅当“强制要求 MFA”策略被禁用时,用户才可选择跳过设置流程。
- 访问登录或注册页面:用户进入登录或注册页面。
- 完成登录或注册:用户在登录或注册流程中完成身份验证 (Authentication)。
- 设置 MFA 主要因子:用户被提示设置主要 MFA 因子(如 passkey、身份验证器应用 OTP、短信验证码或邮箱验证码)。
- 如果启用了多个主要因子,用户可选择自己偏好的方式。
- 如果主要因子与注册标识符相同(如短信或邮箱),则会自动预验证,用户可跳过验证步骤,直接进入下一步(如“添加另一个两步验证”或“保存你的备份因子”)。
- 如果“强制要求 MFA”策略被禁用,用户也可通过点击“跳过”按钮跳过此步骤。
- 设置 MFA 备份因子:如果启用了 备份码,用户在成功配置主要认证 (Authentication) 因子后会被提示保存备份码。系统会自动生成备份码并展示给用户,用户可下载并安全保存。用户需手动确认备份码以完成 MFA 设置流程。
MFA 验证流程
已设置 MFA 的用户在登录时会被提示使用已配置的 MFA 因子验证身份。验证因子取决于 Logto 中的 MFA 配置和用户设置。
- 如果用户只设置了一个因子,将直接验证该因子。
- 如果用户为两步验证 (2FA) 设置了多个因子,系统会根据以下优先级规则展示验证选项:
- Passkey 优先:如果用户已配置 passkey,则默认以此作为验证方式。
- 上次使用优先:如无 passkey,系统优先展示用户上次成功使用的验证方式。
- 选择列表:如以上优先级均不适用,两步验证页面会展示所有可用的绑定验证方式供用户选择。
- 用户可随时点击“尝试其他验证方式”在不同验证选项间切换。
- 如果所有启用的主要因子用户均不可用,且已启用备份码,用户可使用一次性备份码验证身份。
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。