Verificación por SMS para MFA
Logto admite la funcionalidad de autenticación multifactor (MFA) basada en SMS que mejora la seguridad de la cuenta enviando códigos de verificación de un solo uso a los números de teléfono registrados de los usuarios. El SMS MFA sirve como un segundo factor de autenticación y puede combinarse con otros factores de MFA (como TOTP, passkeys, códigos de respaldo) para ofrecer a los usuarios opciones flexibles de autenticación de dos factores.
Conceptos
La verificación por SMS, también conocida como verificación de número de teléfono, es uno de los métodos de MFA más accesibles. Aprovecha la ubicuidad de los teléfonos móviles para entregar códigos de verificación temporales y de un solo uso directamente a los dispositivos de los usuarios mediante mensajes de texto. A diferencia de los autenticadores basados en aplicaciones que requieren la instalación de software adicional, el SMS MFA utiliza la infraestructura de mensajería existente que viene de serie en todos los dispositivos móviles, lo que lo hace inmediatamente disponible para los usuarios sin necesidad de configuración.
Configurar la verificación por SMS para MFA
Paso 1: Configura el conector SMS y las plantillas
- Navega a Consola > Conectores > Conectores de correo electrónico y SMS
- Selecciona un conector SMS apropiado (Twilio, SMS Aero, etc.)
- Configura los parámetros de conexión.
- Configura la plantilla SMS para MFA con los tipos de uso dedicados.
MfaVerification
usageType para verificar MFA.BindMFA
usageType para vincular MFA.
- Prueba la funcionalidad del conector para asegurar la entrega correcta de mensajes.
- Consulta Conectores SMS para instrucciones de configuración específicas del proveedor.
Paso 2: Habilita SMS para MFA
- Navega a Consola > Autenticación multifactor
- Habilita el factor "Código de verificación por SMS". Se recomienda usar SMS MFA en combinación con otros factores de MFA (TOTP, passkeys, códigos de respaldo) para reducir la dependencia de un solo factor.
- Configura tu política de MFA preferida (obligatoria vs. opcional).
- Guarda los cambios de configuración.
-
Limitación del método de inicio de sesión: Los códigos de verificación por SMS no pueden usarse simultáneamente como método de inicio de sesión (1FA) y como factor de MFA (2FA). Elige un flujo de autenticación por cada implementación de SMS.
-
Compatibilidad del método de registro: Los códigos de verificación por SMS pueden usarse simultáneamente tanto para el método de registro como para MFA. Logto optimizará el flujo de registro del usuario final según la política de MFA seleccionada para evitar requerir la verificación por SMS dos veces para el mismo número de teléfono.
-
Compatibilidad con recuperación de contraseña: Aunque los códigos de verificación por SMS pueden usarse simultáneamente tanto para Olvidé mi contraseña como para MFA, esta combinación no es recomendable. Esta configuración reduce la efectividad de la seguridad de MFA, ya que los usuarios podrían potencialmente omitir MFA usando la verificación por SMS de "olvidé mi contraseña" para restablecer su contraseña, luego usar la nueva contraseña para la autenticación primaria (1FA) seguida del mismo método SMS para la verificación MFA.
Flujos de configuración de SMS MFA
La solicitud de configuración de MFA puede aparecer durante el registro del usuario o después de iniciar sesión, dependiendo de tu política de MFA configurada. Los usuarios también pueden habilitar SMS MFA desde su página de configuración de cuenta.
El flujo de configuración de SMS MFA se ve afectado por los siguientes factores:
- Cantidad de factores primarios de MFA: Si hay varios factores primarios, el usuario debe elegir uno para configurar. Los factores primarios son métodos de MFA distintos a los códigos de respaldo.
- Códigos de respaldo habilitados: Cuando están habilitados, los códigos de respaldo se generan automáticamente después de configurar el factor primario de MFA; se solicita al usuario que los guarde.
- Configuración del identificador de registro: Si el número de teléfono se usó como identificador de registro y el usuario ya lo verificó con un código SMS durante el registro, el sistema vinculará automáticamente ese número como factor de MFA y no se requerirá verificación adicional. Si existen otros factores primarios, la interfaz mostrará una opción “Agregar otra verificación en 2 pasos” (el usuario puede omitirla), lo que también indica claramente que MFA está habilitado.
- Datos de usuario existentes: Cuando un usuario existente configura MFA después de iniciar sesión, primero debe completar la autenticación primaria y luego proceder con la configuración de MFA. Si la cuenta ya contiene un número de teléfono primario verificado, la configuración se comporta igual que en el caso del identificador de registro.
A continuación se muestran tres escenarios comunes de vinculación de SMS MFA.
Escenario 1: Número de teléfono solo usado para MFA (Flujo típico)
Cuando el número de teléfono no es uno de los identificadores de registro y solo se usa para MFA, sigue la secuencia de configuración estándar:
- Si solo hay un factor SMS MFA, muestra directamente la interfaz de configuración para ese factor.
- Si hay varios factores primarios de MFA, muestra una página de lista "Configurar MFA" y permite al usuario elegir qué factor configurar.
Ejemplos:
Registro: Correo electrónico + Código de verificación por correo + Contraseña
| MFA: Código de verificación por SMS + Códigos de respaldo
Correo electrónico + Código de verificación por correo + Contraseña
| MFA: Código de verificación por SMS + Códigos de respaldo

Registro: Correo electrónico + Código de verificación por correo + Contraseña
| MFA: Código de verificación por SMS + Passkeys + OTP de app autenticadora + Códigos de respaldo
Correo electrónico + Código de verificación por correo + Contraseña
| MFA: Código de verificación por SMS + Passkeys + OTP de app autenticadora + Códigos de respaldo

Escenario 2: Teléfono verificado como identificador de registro
Si el número de teléfono es el identificador de registro y el usuario ya lo verificó con un código SMS durante el registro, el sistema vinculará automáticamente ese número como factor de MFA — no se necesita verificación adicional.
Ejemplos:
Registro: Número de teléfono + Código de verificación por SMS + Contraseña
| MFA: Código de verificación por SMS + Códigos de respaldo
Número de teléfono + Código de verificación por SMS + Contraseña
| MFA: Código de verificación por SMS + Códigos de respaldo

Escenario 3: Teléfono verificado pero existen varios factores primarios
Si el número de teléfono fue verificado en el registro (como identificador de registro) pero la cuenta tiene varios factores primarios de MFA (por ejemplo, SMS más passkeys o apps autenticadoras), la interfaz solicitará al usuario “Agregar otra verificación en 2 pasos”. El usuario puede elegir agregar otro factor u omitirlo; la solicitud también comunica que MFA ya está habilitado.
Ejemplos:
Registro: Número de teléfono + Código de verificación por SMS + Contraseña
| MFA: Código de verificación por SMS + Passkeys + OTP de app autenticadora + Códigos de respaldo
Número de teléfono + Código de verificación por SMS + Contraseña
| MFA: Código de verificación por SMS + Passkeys + OTP de app autenticadora + Códigos de respaldo

Flujos de verificación de SMS MFA
Cuando un usuario con SMS MFA habilitado inicia sesión, después de completar exitosamente la autenticación primaria (1FA), se le solicitará verificar su identidad usando el código de verificación por SMS como segundo factor de autenticación (2FA).
Si hay varios factores de MFA disponibles, los usuarios pueden seleccionar entre los factores configurados. El sistema determina qué factor de MFA solicitar primero según el orden de prioridad especificado en Configurar MFA.
Ejemplos:
Inicio de sesión: Correo electrónico + Contraseña
| MFA: Código de verificación por SMS (última vez usado) / OTP de app autenticadora / Códigos de respaldo
Correo electrónico + Contraseña
| MFA: Código de verificación por SMS (última vez usado) / OTP de app autenticadora / Códigos de respaldo

Manejo de errores
-
Número de teléfono no vinculado
- Código de error:
session.mfa.mfa_factor_not_enabled
- Manejo: Guiar al usuario para vincular primero el número de teléfono
- Código de error:
-
Código de verificación incorrecto
- Código de error:
verification_code.code_mismatch
- Manejo: Solicitar al usuario que lo reingrese, limitar intentos de reintento
- Código de error:
-
Código de verificación expirado
- Código de error:
verification_code.expired
- Manejo: Solicitar al usuario que solicite un nuevo código de verificación
- Código de error:
-
Límite de envío excedido
- Código de error:
connector.rate_limit_exceeded
- Manejo: Mostrar tiempo de espera, limitar reenvíos
- Código de error: