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.

- Requisitos previos
- Paso 1: La aplicación cliente inicia una solicitud de CIBA
- Paso 2: El Tenant de Auth0 confirma la solicitud de CIBA
- Paso 3: La aplicación cliente consulta si hay una respuesta
- Paso 4: Auth0 envía un enlace a la dirección de correo electrónico del usuario
- Paso 5: El usuario se autentica en el navegador
- Paso 6: El navegador presenta al usuario los detalles del consentimiento
- Paso 7: Auth0 recibe la respuesta del usuario después de que se completa el flujo
- Paso 8: Auth0 devuelve el token de acceso a la aplicación cliente
Requisitos previos
- Configurar la autenticación de canal secundario iniciada por el cliente para su inquilino y su aplicación, incluidas las notificaciones por correo electrónico.
- Establecer el parámetro
requested_expiryen un valor entre 301 y 259200 segundos (72 horas). Para obtener más información, consulte Configurar el canal de notificación. - Si usa notificaciones por correo electrónico con CIBA y Rich Authorization Requests (RAR) para la autorización del usuario, configure la pantalla de consent personalizada.
Paso 1: La aplicación cliente inicia una solicitud de CIBA
/bc-authorize:
- cURL
- C#
- Go
- Java
| Parámetros | Descripción |
|---|---|
tenant | Nombre del inquilino. También puede ser un dominio personalizado. Si se usa el formato iss_sub, el nombre del inquilino se pasa en el claim iss. |
client_id | Identificador de la aplicación cliente. |
client_secret | Método de autenticación del cliente que se usa para la autenticación del usuario con CIBA, como Secreto del cliente, Private Key JWT o autenticación mTLS. Si usa Private Key JWT o mTLS, no necesita incluir el secreto del cliente. |
scope | Debe incluir openid.El scope puede incluir opcionalmente offline_access para solicitar un Token de actualización. Sin embargo, para la autorización puntual de una transacción con el flujo de CIBA, no se necesita un token de actualización y no tiene ningún significado en este contexto. |
user_id | ID de usuario del usuario autorizador, que se pasa dentro de la estructura login_hint. Si se usa el formato iss_sub, el ID de usuario se pasa en el claim sub.El ID de usuario puede tener un formato distinto según el proveedor externo. |
requested_expiry | La duración máxima, en segundos, durante la que la sesión de CIBA debe ser válida. La expiración solicitada del flujo de CIBA debe estar entre 1 y 259200 segundos (72 horas), y el valor predeterminado es 300 segundos. Incluya el parámetro requested_expiry para establecer una expiración personalizada para el flujo de CIBA.El parámetro requested_expiry ayuda a determinar qué canal de notificación usa CIBA:
|
binding_message | Mensaje legible que se usa para vincular el flujo de CIBA entre los dispositivos de autenticación y de consumo. El mensaje de vinculación es obligatorio y puede tener hasta 64 caracteres. Use solo caracteres alfanuméricos y +-_.,:#. |
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
POST, deberías recibir una respuesta que contenga un auth-req-id que haga referencia a ella:
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
/token con el grant type urn:openid:params:grant-type:ciba y el auth_req_id que recibió del endpoint /bc-authorize:
- cURL
- C#
- Go
- Java
/token.
Paso 4: Auth0 envía un enlace a la dirección de correo electrónico del usuario
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_messageaparece 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 consultaconsenthace referencia a la solicitud CIBA pendiente de consentimiento.

Paso 5: El usuario se autentica en el navegador
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.

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:
Paso 6: El navegador envía la respuesta del usuario de nuevo a Auth0
El usuario acepta la solicitud de autenticación

El usuario rechaza la solicitud de autenticación

Paso 7: Auth0 recibe la respuesta del usuario después de que finaliza el flujo
/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
refresh_token solo estará presente si se incluyó el scope offline_access en la solicitud inicial de /bc-authorize.