Saltar al contenido principal
Auth0 implementa RP-Initiated Logout 1.0 de Connect para el cierre de sesión de usuarios finales. Este estándar forma parte de la colección de especificaciones finales de OpenID Connect.

Cómo funciona

El cierre de sesión iniciado por RP es un escenario en el que una (usuario) solicita al proveedor OpenID (Auth0) que cierre su sesión.
  1. El usuario inicia una solicitud de cierre de sesión en la aplicación.
  2. La aplicación redirige al usuario al endpoint OIDC Logout de la API de autenticación de Auth0.
  3. Auth0 redirige al usuario al destino correspondiente en función de los parámetros del endpoint OIDC Logout proporcionados.

Configurar RP-Initiated Logout

Para configurar RP-Initiated Logout, debe asegurarse de que su aplicación pueda encontrar el parámetro end_session_endpoint en el documento de metadatos de descubrimiento de su inquilino de Auth0 y de que llame al endpoint de cierre de sesión de OIDC con los parámetros necesarios.

Habilitar la detección del endpoint

Para los inquilinos de Auth0 creados a partir del 14 de noviembre de 2023, RP-Initiated Logout End Session Endpoint Discovery está habilitado de forma predeterminada.
Puede habilitar RP-Initiated Logout End Session Endpoint Discovery en el o con la de Auth0.
Para habilitar RP-Initiated Logout End Session Endpoint Discovery en el Auth0 Dashboard:
  1. Vaya a Dashboard > Settings > Advanced.
  2. Busque la sección Login and Logout.
  3. Active el interruptor RP-Initiated Logout End Session Endpoint Discovery.

Llama al endpoint de cierre de sesión de OIDC

La mayoría de las bibliotecas SDK de Auth0 son compatibles con OIDC y admiten el cierre de sesión iniciado por RP de forma nativa.
Cuando llames al endpoint de cierre de sesión de OIDC, Auth0 recomienda que proporciones el parámetro id_token_hint. Si tu aplicación no puede almacenar de forma segura , puedes proporcionar en su lugar los parámetros logout_hint y client_id.
Puedes llamar al endpoint de cierre de sesión de OIDC con información redundante.Por ejemplo, puedes enviar los parámetros id_token_hint y logout_hint, o id_token_hint y client_id.En todos los casos, Auth0 comprueba que los datos del usuario y de la sesión sean coherentes, y devuelve un error si detecta alguna discrepancia.

Parámetros del endpoint OIDC Logout

El endpoint OIDC Logout de la API de autenticación admite los siguientes parámetros:
Parámetro¿Obligatorio?Descripción
id_token_hintRecomendadoToken de ID emitido previamente para el usuario. Indica qué usuario debe cerrar sesión.
logout_hintOpcionalValor del ID de sesión (sid) que indica qué usuario debe cerrar sesión.
post_logout_redirect_uriOpcionalValor de la URL de redirección que indica adónde redirigir al usuario después de cerrar sesión.
client_idOpcionalID de cliente de la aplicación.
federatedOpcionalIndica a Auth0 que cierre la sesión del usuario en su Proveedor de identidad.
stateOpcionalValor opaco que la aplicación agrega a la solicitud inicial de cierre de sesión y que Auth0 incluye cuando redirige de vuelta a post_logout_redirect_uri.
ui_localesOpcionalLista de configuraciones regionales separadas por espacios que se usa para restringir la lista de idiomas de la solicitud. La primera configuración regional de la lista debe coincidir con la configuración regional habilitada en su inquilino.

Parámetro id_token_hint

Auth0 recomienda que uses el parámetro id_token_hint cuando llames al endpoint de cierre de sesión de OIDC.
El valor del parámetro id_token_hint debe ser el token de ID que Auth0 emitió al usuario después de que se autenticara. El token de ID contiene las reclamaciones registradas del emisor (iss), (aud) y el ID de sesión de Auth0 (sid) para su verificación. Para obtener más información sobre las reclamaciones del token de ID, consulta Estructura del token de ID.
Ejemplos

parámetro logout_hint

El valor del parámetro logout_hint debe ser el ID de sesión (sid) de la sesión actual del usuario en Auth0. El ID de sesión (sid) se proporciona como una reclamación registrada en el token de ID que Auth0 emitió al usuario después de que se autenticara.
Debe usar el ID de sesión (sid) asociado al token de ID emitido por Auth0 en el momento en que comenzó la sesión actual. Auth0 ignora las solicitudes con valores aleatorios o que no reflejan los datos de la sesión actual.
Ejemplo

Parámetro post_logout_redirect_uri

El valor del parámetro post_logout_redirect_uri debe ser una URL válida y codificada que esté registrada en la lista de Allowed Logout URLs de tu:
  1. configuración de la aplicación: si proporcionas el parámetro id_token_hint o los parámetros logout_hint y client_id.
  2. configuración del Tenant: si proporcionas solo el parámetro logout_hint.
Ejemplo
Actualizar las Allowed Logout URLs de la aplicación
Puede registrar una URL en la lista de Allowed Logout URLs de su aplicación en Auth0 Dashboard o mediante la Management API de Auth0.
Para registrar una URL en la lista de Allowed Logout URLs de su aplicación en el Dashboard:
  1. Vaya a Dashboard > Applications > Applications.
  2. Seleccione su aplicación.
  3. Busque la sección URI de la aplicación.
  4. Actualice las Allowed Logout URLs siguiendo las directrices proporcionadas.
Actualizar las Allowed Logout URLs del inquilino
Puede registrar una URL en la lista de Allowed Logout URLs de su inquilino desde el Auth0 Dashboard o mediante la Management API de Auth0.
Para registrar una URL en la lista de Allowed Logout URLs de su inquilino desde el Dashboard:
  1. Vaya a Dashboard > Settings > Advanced.
  2. Busque la sección Login and Logout.
  3. Actualice Allowed Logout URLs siguiendo las directrices proporcionadas.
Pautas para Allowed Logout URLs
Cuando actualice Allowed Logout URLs, siga estas pautas para evitar errores de validación:
  • Separe varios valores de URL con una coma (,).
  • Incluya el esquema de la URL (por ejemplo, https://).
Puede usar un asterisco (*) como comodín para subdominios (como https://*.example.com), pero le recomendamos no usar comodines en entornos de producción. Para obtener más información, consulte Subdomain URL Placeholders.
Agregue parámetros de consulta a post_logout_redirect_uri
El endpoint de cierre de sesión de OIDC analiza los parámetros de consulta de la URL proporcionada al parámetro post_logout_redirect_uri. Debe incluir la URL exacta con parámetros de consulta en Allowed Logout URLs; de lo contrario, la solicitud de cierre de sesión se rechazará. La URL debe coincidir exactamente, incluidos todos los nombres y valores de los parámetros de consulta. Por ejemplo, si pasa https://example.com/logout?myParam=1234 al parámetro post_logout_redirect_uri (codificado como https%3A%2F%2Fexample.com%2Flogout%3FmyParam%3D1234), debe incluir la URL completa https://example.com/logout?myParam=1234 en Allowed Logout URLs.
No se admiten valores dinámicos en los parámetros de consulta. Cada combinación única de nombres y valores de parámetros de consulta debe registrarse como una entrada independiente en Allowed Logout URLs.

parámetro ui_locales

El valor del parámetro ui_locales debe ser una lista de configuraciones regionales compatibles delimitada por espacios. El primer valor de la lista debe coincidir con la configuración Idioma predeterminado de su inquilino.

parámetro federated

El parámetro federated no requiere ningún valor. Si incluye el parámetro federated al llamar al endpoint de cierre de sesión de OIDC, Auth0 intenta cerrar la sesión del usuario en su Proveedor de identidad. El estándar OIDC define que el flujo de cierre de sesión debe interrumpirse para solicitar el consentimiento del usuario si el proveedor de OpenID no puede verificar que la solicitud fue realizada por el usuario. Auth0 aplica este comportamiento al mostrar una pantalla de consentimiento de cierre de sesión si detecta alguna de las siguientes condiciones:
  • No se proporciona ninguno de los parámetros id_token_hint ni logout_hint.
  • La claim sid del token de ID no corresponde a la sesión del navegador de la solicitud.
  • El valor del parámetro logout_hint no coincide con los datos de la sesión actual.
Si el usuario confirma la solicitud de cierre de sesión, Auth0 continúa con el flujo de cierre de sesión. Puede deshabilitar la pantalla de consentimiento de cierre de sesión. Si lo hace, Auth0 no intentará detectar comportamientos anómalos y aceptará automáticamente las solicitudes de cierre de sesión. Para deshabilitar la pantalla de consentimiento de cierre de sesión en el Dashboard:
  1. Vaya a Dashboard > Settings > Advanced.
  2. Desactive el interruptor Show RP-Initiated Logout End-User Confirmation.

Más información