Skip to main content
Para usar las funciones de autenticación de canal secundario iniciada por el cliente (CIBA), debes tener un plan Enterprise o un add-on adecuado. Consulta Auth0 Pricing para obtener más información.
Cuando usas notificaciones por correo electrónico con CIBA, el usuario recibe un correo electrónico con un enlace que lo redirige para autenticarse o autorizar una solicitud en el navegador. Al usar notificaciones por correo electrónico con CIBA, el usuario inicia sesión en el dispositivo de consumo, pero completa la autenticación al hacer clic en un enlace enviado a su dirección de correo electrónico verificada. Cuando el usuario hace clic en el enlace de verificación, se le redirige al navegador, lo que crea una sesión que Auth0 usa para seguir el proceso de autenticación y confirmar la identidad del usuario. Esta sesión es necesaria para conectar el dispositivo de autenticación, en este caso el navegador, con el dispositivo de consumo, como una Smart TV. El siguiente diagrama explica el flujo completo de CIBA con notificaciones por correo electrónico:
En las siguientes secciones se explica paso a paso cómo funciona la autenticación de usuarios con CIBA mediante notificaciones por correo electrónico.

Requisitos previos

Para iniciar una solicitud de CIBA por correo electrónico con Auth0, debe:

Paso 1: La aplicación cliente inicia una solicitud de CIBA

Usa las API de búsqueda de usuarios para encontrar al usuario que autoriza para el que deseas iniciar una solicitud de CIBA y obtener su ID de usuario. Una vez que tengas el ID de usuario del usuario que autoriza, usa la Authentication API o nuestros SDKs para enviar una solicitud de CIBA al endpoint /bc-authorize:
Se aplica un límite de tasa por usuario: al usuario autorizador no se le enviarán más de 5 solicitudes por minuto.

Paso 2: El Tenant de Auth0 confirma la solicitud de CIBA

Si el Tenant de Auth0 recibe correctamente la solicitud POST, deberías recibir una respuesta que contenga un auth-req-id que haga referencia a ella:
El valor auth_req_id se envía al endpoint /token para consultar si el flujo CIBA se ha completado.

Paso 3: La aplicación cliente consulta la respuesta

Use Authentication API o nuestros SDKs para llamar al endpoint /token con el grant type urn:openid:params:grant-type:ciba y el auth_req_id que recibió del endpoint /bc-authorize:
Hasta que el usuario que autoriza apruebe la transacción, debería recibir la siguiente respuesta:
Hay un intervalo de espera de aproximadamente cinco segundos entre sondeos. Si realiza sondeos con demasiada frecuencia, recibirá la siguiente respuesta, donde la descripción varía según el intervalo de retroceso:
Para resolver el error, espere hasta el siguiente intervalo (en segundos) antes de consultar el endpoint /token. El Servidor de autorización de Auth0 usa login_hint, que contiene el ID del usuario que autoriza, para iniciar la autenticación del usuario en el dispositivo de autenticación:
  • El Servidor de autorización de Auth0 envía un correo electrónico a la dirección de correo electrónico verificada del usuario.
  • El correo electrónico contiene un enlace de verificación en el que el usuario debe hacer clic para autenticarse. El binding_message aparece como el código de solicitud.
  • El enlace dirige al usuario al navegador mediante una solicitud al endpoint /bc-verify, donde el parámetro de consulta consent hace referencia a la solicitud CIBA pendiente de consentimiento.
Auth0 envía un correo electrónico a la dirección de correo electrónico verificada del usuario

Paso 5: El usuario se autentica en el navegador

Si no se encuentra ninguna sesión activa, el enlace de verificación le pedirá al usuario que se autentique. El usuario hace clic en el enlace para continuar con la autenticación. Para autenticarse, el usuario introduce su dirección de correo electrónico verificada y su contraseña. Debe usar las credenciales correspondientes al parámetro login_hint enviado al endpoint /bc-authorize cuando la aplicación cliente inicia una solicitud de CIBA. De lo contrario, se le mostrará un mensaje de error y tendrá que cerrar sesión y volver a intentarlo.
El usuario se autentica en el navegador
Al igual que en un flujo de inicio de sesión estándar, el desencadenador post-login de Actions se ejecuta en el flujo de CIBA con correo electrónico, lo que permite a los clientes proporcionar lógica personalizada para aplicar políticas de control de acceso o solicitar factores MFA adicionales. Cuando se ejecuta desde un enlace de verificación de CIBA, el valor de event.transaction.protocol es oidc-ciba-web-link, lo que le permite aplicar reglas personalizadas a este tipo específico de inicio de sesión. Para obtener más información, consulte Login Trigger. Una vez autenticado, el navegador presenta al usuario los datos de consentimiento de la API de Consent de Auth0, que incluye binding_message, scope y audience. Los alcances se filtran según su política de RBAC. Para obtener más información, consulte Role-Based Access Control. El siguiente ejemplo de código muestra una respuesta de ejemplo de la API de Consent de Auth0:
En este punto, el usuario puede aceptar o denegar la solicitud de autenticación.

Paso 6: El navegador envía la respuesta del usuario de nuevo a Auth0

El navegador envía la respuesta del usuario de nuevo a Auth0. Según el usuario acepte o rechace la solicitud de autenticación, Auth0 muestra las siguientes pantallas de consentimiento, que debe personalizar configurando las pantallas de consentimiento:

El usuario acepta la solicitud de autenticación

El usuario acepta la solicitud de autenticación

El usuario rechaza la solicitud de autenticación

El usuario acepta la solicitud de autenticación

Paso 7: Auth0 recibe la respuesta del usuario después de que finaliza el flujo

La aplicación cliente completa el sondeo al recibir una respuesta del endpoint /token. Un flujo CIBA siempre requiere una respuesta del usuario que autoriza, ya sea de aprobación o rechazo, y no se verifican las autorizaciones existentes.

Paso 8: Auth0 devuelve el token de acceso a la aplicación cliente

Si el usuario rechaza la solicitud por correo electrónico, Auth0 devuelve a la aplicación cliente una respuesta de error como la siguiente:
Si el usuario aprueba la solicitud enviada por correo electrónico, Auth0 devuelve a la aplicación cliente un como el siguiente:
refresh_token solo estará presente si se incluyó el scope offline_access en la solicitud inicial de /bc-authorize.

Más información