La autenticación sin contraseña en conexiones de base de datos no es compatible con Classic Login.
Cómo funciona
- El usuario final introduce un identificador para iniciar sesión con Universal Login de Auth0.
- Auth0 busca los métodos de autenticación de cada identificador configurado en tu conexión de base de datos.
- Al usuario se le muestra la opción más adecuada según
default_methody los métodos de autenticación disponibles (por ejemplo, recibir un OTP por correo electrónico o teléfono, o introducir una contraseña). - Si OTP es el método de autenticación seleccionado, Auth0 envía un code al correo electrónico o al teléfono del usuario.
- El usuario introduce el code y se autentica. Si has configurado claves de acceso, se le pedirá que complete la inscripción progresiva en claves de acceso.
Antes de empezar
- Configura tu inquilino para usar el perfil de autenticación Identifier-First.
- Si tienes previsto usar OTP por teléfono (SMS o voz), debes habilitar la opción Experiencia de teléfono unificada en Marca > Proveedor de teléfono.
- Los atributos deben estar habilitados en la conexión de base de datos.
- Si tienes previsto usar conexiones sin contraseña existentes (heredadas) junto con autenticación sin contraseña en conexiones de base de datos, y no quieres configurar tus conexiones sin contraseña existentes para usar Unified Phone Provider:
- Ve a Auth0 Dashboard > Authentication > Passwordless.
- Selecciona Configure en SMS.
- Asegúrate de que la opción Use Tenant-Level Messaging Provider esté deshabilitada.
Configurar atributos (identificadores)
Para los identificadores de correo electrónico y teléfono, si la contraseña no está habilitada, debe tener habilitada la verificación OTP para el registro. Puede configurar los atributos de correo electrónico y teléfono como opcionales durante el registro, para que los usuarios puedan registrarse solo con un correo electrónico o solo con un número de teléfono.
Cuando un usuario se autentica con OTP por correo electrónico,
email_verified se establece automáticamente en true en su perfil. Cuando un usuario se autentica con OTP por teléfono, phone_verified se establece automáticamente en true.
Para obtener más información, consulte Activar y configurar atributos para identificadores flexibles.
Crear una nueva conexión de base de datos
- Auth0 Dashboard
- Management API
- Vaya a Auth0 Dashboard > Authentication > Database. Seleccione Create DB Connection para crear la conexión.
- Introduzca un nombre único para la conexión.
- Elija uno o más atributos para que los usuarios finales inicien sesión o se registren.
- Seleccione los métodos de autenticación. Puede configurar estos métodos con más detalle una vez creada la conexión.
- Active Disable Sign Ups si no quiere que los usuarios se registren mediante endpoints públicos.
- Active Promote Connection to Domain Level si quiere usar esta conexión con aplicaciones de terceros.
- Seleccione Create.
- En la nueva conexión, seleccione la pestaña Attributes.
- Para desactivar Username como identificador, seleccione Configure y desactive Use Username as Identifier.
- Para configurar los identificadores de correo electrónico y teléfono, seleccione Configure.
- Para los atributos de correo electrónico, seleccione One-Time Password (OTP) en Verification Methods y habilite Verify email on sign up para una configuración realmente sin contraseña. Esto garantiza que
email_verifiedse establezca automáticamente para que a los usuarios siempre se les solicite un OTP al iniciar sesión y al registrarse.
- Seleccione Save.
-
Configure los ajustes de los métodos de autenticación correspondientes a los identificadores elegidos. No puede desactivar la contraseña a menos que tenga configurado
phone_otpy/oemail_otp. -
En la configuración de Password, seleccione Policy y elija Block para:
- Password on Login
- Password on Signup
- Self-service change password (updates automatically)
- Active Support users without a password.
- Seleccione Save. En el aviso, seleccione Continue para confirmar que entiende que los usuarios existentes pueden verse afectados.
- Vaya a la pestaña Applications y habilite la conexión para la aplicación o API.
Actualizar conexiones existentes
- Auth0 Dashboard
- Management API
- Abra la conexión: Vaya a Auth0 Dashboard > Authentication > Database y seleccione la conexión que desea actualizar.
- Active Attributes: En la pestaña Attributes, seleccione Activate para habilitar la New Attributes Configuration.
-
Agregue los atributos de correo electrónico y teléfono: Seleccione + Add Attributes y agregue Email y Phone Number si todavía no están presentes.
En una conexión verdaderamente sin contraseña (OTP), el identificador
usernameno es compatible. -
Habilite los métodos de autenticación OTP: En la pestaña Authentication Methods:
- Configure Phone en Allow Phone OTP y guarde los cambios.
- Configure Email en Allow Email OTP y guarde los cambios.
-
Bloquee la autenticación por contraseña: En la configuración de Password, elija Policy y seleccione Block para:
- Password on Login
- Password on Signup
- Self-service change password
- Guarde: Seleccione Save.
Usa Auth0 Actions
Trigger de post-login
post-login se activa después de que un usuario se autentica, pero antes de que el servidor de autorización devuelva un token. El objeto event.authentication en Auth0 Dashboard > Actions > Triggers > Post Login expone los siguientes métodos:
email_verified y phone_verified se establecen automáticamente en el perfil del usuario cuando un usuario se autentica mediante OTP por correo electrónico u OTP por teléfono. Si antes usabas una Action de post-login para establecer manualmente estos indicadores, puedes eliminar esa solución temporal.event.authentication para:
- Detectar qué factor sin contraseña completó el usuario (
email,sms,telopwd) - Agregar claims personalizados a los tokens según el método de autenticación
- Ejecutar lógica de forma condicional según cómo se autenticó el usuario
Ejemplo
event.authentication.methods para detectar qué factor sin contraseña completó el usuario y se añade como una claim personalizada al token de ID.
Trigger posterior al desafío
post-challenge se ejecuta después de que los usuarios completan un desafío, como un restablecimiento de contraseña, la validación del número de teléfono o MFA. El objeto event.authentication en Auth0 Dashboard > Actions > Triggers > password-reset-post-challenge expone los siguientes atributos:
Ejemplo
event.authentication.methods para detectar qué factor de autenticación sin contraseña completó el desafío y lo añade como un claim personalizado en el token de ID.
Beneficios
- Implementación simplificada: Menos conexiones que configurar y mantener. No es necesario vincular cuentas, a menos que se usen conexiones sociales/federadas junto con conexiones de base de datos.
- Mejora de la experiencia del usuario: Ofrece combinaciones de OTP por correo electrónico y teléfono con contraseñas, passkeys e inicio de sesión social/federado, todo desde la misma experiencia de identificador primero en Universal Login.
- Flujos de registro flexibles: Configure los atributos de correo electrónico y teléfono como opcionales durante el registro, lo que permite a los usuarios registrarse solo con un correo electrónico o solo con un número de teléfono; ideal para experiencias centradas en dispositivos móviles o solo con correo electrónico.
- OTP por voz: El OTP por voz se incluye como primer factor cuando se configura en la experiencia telefónica unificada.
Limitaciones
- Disponible solo para flujos basados en Universal Login; todavía no es compatible con la autenticación basada en API.
- La autenticación sin contraseña para conexiones de base de datos no se admite con Classic Login.
- La autenticación sin contraseña para conexiones de base de datos no admite Implicit Signup & Login.
- En las conexiones heredadas sin contraseña, no había diferencias en la experiencia de usuario entre el registro y el inicio de sesión. Las conexiones de base de datos distinguen entre la experiencia de registro y la de inicio de sesión, lo que requiere un registro y un inicio de sesión explícitos.
- Si un usuario sin una identidad de Auth0 entra en el flujo de inicio de sesión, el sistema no lo registrará automáticamente. El usuario recibe un error después de validar el OTP.
- Si un usuario con una identidad de Auth0 entra en el flujo de registro, recibe un error después de validar el OTP.