Saltar al contenido principal

Requisitos previos

Antes de poder habilitar las claves de acceso para una conexión de base de datos, debe completar los siguientes requisitos previos. En su inquilino, debe: En su conexión de base de datos, debe: Las conexiones de base de datos con claves de acceso habilitadas también deben seguir teniendo habilitadas las contraseñas. Esto garantiza que los usuarios puedan seguir accediendo a sus cuentas desde navegadores y dispositivos antiguos que quizá todavía no admitan claves de acceso.

Acceso anticipado Usa tu propia base de datos sin tener habilitada la importación de usuarios

La autenticación con claves de acceso ahora admite el uso de tu propia base de datos sin tener habilitada la importación de usuarios. Esto te permite ofrecer autenticación con claves de acceso en conexiones de base de datos personalizadas mientras sigues autenticando a los usuarios con tu almacén de usuarios externo. Como requisito previo, debes actualizar los scripts de Action de base de datos Get User y Create scripts de Action de base de datos para admitir la gestión de usuarios tanto por identificador como por user_id.
  1. Primero, confirma que la importación de usuarios esté deshabilitada para tu conexión de base de datos.
  2. Habilita la compatibilidad con el objeto context. Esto hace que el parámetro context esté disponible en tus scripts de Action de base de datos, lo cual es necesario para admitir búsquedas tanto por identificador como por user_id.
  3. El script Get User debe admitir tanto la búsqueda por identificador (context.identifierType no está establecido) como la búsqueda por user_id (context.identifierType está establecido en user_id). Actualiza tu script de Action de base de datos Get User de getByEmail a la función getUser proporcionada:
    function getByEmail(email, callback) { 
    function getUser(identifierValue, context, callback) { 
        const axios = require('axios');
    
        // Recupera el identificador del usuario desde context
        const identifierType = context.identifierType || 'email'; 
    
        // Reemplaza con tu endpoint externo de recuperación de usuarios 
        const url = configuration.baseAPIUrl
                    + `/get_user/${email}?type=email`; 
                    + `/get_user/${identifierValue}?type=${identifierType}`; 
    
        axios.get(url)
            .then(response => {
                // Devuelve el objeto de usuario si se encuentra
                const user = response.data; 
                return callback(null, {
                    user_id: user.user_id,
                    email: user.email
                    // Opcionalmente incluye otros atributos de usuario 
                });
            })
            .catch(error => {
                // Maneja la respuesta de error 
                return callback(null);
            });
    }
    
  4. El script Create debe devolver un perfil de usuario válido. Cuando los atributos están habilitados, el perfil de usuario devuelto debe seguir la misma validación que los scripts Login y Get User. Cuando los atributos no están habilitados, el perfil de usuario devuelto debe incluir el valor user_id. Actualiza tu script de Action de base de datos Create para devolver un perfil de usuario válido:
    function create(user, callback) {
        const axios = require('axios');
    
        // Reemplaza con tu endpoint externo de creación de usuarios
        const url = 'https://example.com/api/create'; 
    
        const payload = {
            email: user.email
            // Agrega otras propiedades de usuario según sea necesario
        };
    
        axios.post(url, payload)
            .then(response => {
                // Devuelve el objeto de usuario si se creó
                const createdUser = response.data; 
    
                return callback(null, {
                    user_id: createdUser.user_id,
                    email:createdUser.email
                    // Opcionalmente incluye otros atributos de usuario
                });
            })
            .catch(error => {
                // Maneja la respuesta de error 
                return callback(error);
            }); 
    }
    

Configurar claves de acceso

Una vez que completes los requisitos previos, puedes usar el Auth0 Dashboard para habilitar y configurar las claves de acceso.
1

Abrir la configuración de claves de acceso

Ve a Authentication > Database y selecciona el nombre de la conexión de base de datos que quieres editar.Selecciona la pestaña Authentication Methods. Luego, en la sección Passkey, selecciona Configure para abrir el panel Passkey.Si todavía no está marcada, marca la opción Enable passkeys.
2

Elegir la interfaz de autenticación con clave de acceso

La interfaz de autenticación con clave de acceso determina cómo los usuarios pueden activar la autenticación con clave de acceso durante el inicio de sesión y el registro.En la sección Passkey Authentication UI, elige una de las tres opciones:
Interfaz de autenticación con clave de accesoDescripción
Botón de clave de acceso y autocompletarLos usuarios pueden autenticarse con claves de acceso mediante el autocompletado o el botón de clave de acceso.
AutocompletarLos usuarios deben iniciar sesión con la función de autocompletado de su navegador para usar claves de acceso. El autocompletado permite seleccionar una cuenta guardada en un menú desplegable en lugar de introducir las credenciales manualmente.
Botón de clave de accesoLos usuarios deben seleccionar el botón Continue with a passkey en la pantalla de inicio de sesión.
Si el autocompletado no está disponible en el navegador del usuario, este puede iniciar sesión con el botón de clave de acceso (si está habilitado) o con una contraseña.
3

Habilitar la inscripción progresiva (opcional)

La inscripción progresiva solicita a los usuarios que creen una clave de acceso (si aún no lo han hecho) después de iniciar sesión con un identificador y una contraseña. Este paso no es obligatorio, y los usuarios pueden optar por posponer esta acción cada 30 días.La inscripción progresiva puede ser útil al migrar usuarios a claves de acceso, ya que facilita la transición entre métodos de autenticación.
Al crear una cuenta mediante un correo electrónico de invitación a la organización, los usuarios no pueden elegir la autenticación con clave de acceso. Puedes habilitar la inscripción progresiva para que estos usuarios puedan crear claves de acceso después de iniciar sesión con una contraseña.
La casilla Progressive Enrollment está marcada de forma predeterminada, pero puedes desmarcarla para deshabilitarla.
4

Habilitar la inscripción local (opcional)

Cuando un usuario de claves de acceso inicia sesión en un dispositivo nuevo con una clave de acceso multidispositivo, la inscripción local le solicita que cree una clave de acceso local en ese dispositivo. Esto no es obligatorio, por lo que el usuario puede omitir la creación de una clave de acceso local.La casilla Local Enrollment está marcada de forma predeterminada, pero puedes desmarcarla para deshabilitarla.
5

Guardar la configuración

Selecciona Save para guardar los cambios de configuración.Si el botón para guardar está deshabilitado, usa la sección Passkey Authentication Prerequisites en la parte superior del panel Passkey para confirmar que tu inquilino y tu conexión de base de datos estén configurados correctamente.

Próximos pasos

Para garantizar la mejor experiencia a los usuarios finales al usar claves de acceso, puede considerar los siguientes pasos adicionales.

Configurar el ID de relying party (RP ID)

Para permitir que los usuarios usen una sola clave de acceso para autenticarse en todos los subdominios (por ejemplo, tanto en una aplicación nativa disponible en app.example.com como en una aplicación web disponible en login.example.com), puede establecer el RP ID en el dominio principal o raíz.
Cuando personaliza el RP ID en Auth0 Dashboard o Management API, todas las claves de acceso de otros dominios dejarán de funcionar y sus usuarios finales deberán volver a inscribirse.
El dominio de su aplicación debe agregarse a la lista de Allowed Origins (CORS) en la configuración de la aplicación para que el RP ID funcione correctamente. Para establecer el RP ID en Auth0 Dashboard:
  1. Vaya a Auth0 Dashboard > Tenant Settings.
  2. Seleccione la pestaña Relying Party IDs.
  3. Elija Edit Relying Party ID.
  4. Introduzca el dominio.
  5. Si este RP ID es el dominio raíz, marque la casilla para establecer el dominio como predeterminado para su inquilino.
  6. Seleccione Save.
  7. A continuación, vaya a la aplicación para la que desea establecer un ID de relying party.
  8. Seleccione la configuración de la aplicación.
  9. En la sección Application URIs, agregue el dominio de su aplicación en Allowed Origins (CORS).
  10. Seleccione Save.

Configurar un dominio personalizado

Cuando un usuario inscribe una clave de acceso, esta queda asociada al dominio de la . Si el nombre de dominio cambia, cualquier clave de acceso asociada al dominio anterior deja de ser válida. Considere configurar un dominio personalizado para su inquilino antes de habilitar las claves de acceso, a fin de evitar interrupciones para los usuarios finales. Si tiene habilitados Múltiples dominios personalizados en su inquilino, Auth0 mantiene una relación uno a uno entre un dominio y la clave de acceso asociada a ese dominio. Los usuarios solo pueden inscribir una clave de acceso para uno de los múltiples dominios personalizados del inquilino (el primero con el que se inscriban). Para el inicio de sesión sin contraseña, el dominio personalizado seleccionado debe aparecer en el Magic Link del flujo de inicio de sesión sin contraseña.

Omitir la autenticación multifactor

Si tiene habilitada la autenticación multifactor, el comportamiento predeterminado es exigir que se complete una verificación de MFA, independientemente de si el método de autenticación fue una contraseña o una clave de acceso. Dado el alto nivel de seguridad que proporcionan las claves de acceso, puede omitir MFA para la autenticación con clave de acceso mediante una Action de post-login.