Saltar al contenido principal
El cierre de sesión consiste en finalizar una sesión autenticada cuando ya no es necesaria, lo que minimiza la probabilidad de que partes no autorizadas puedan “apoderarse” de la sesión. Normalmente, esto se logra ofreciendo una opción de cierre de sesión en la interfaz de usuario que pones a disposición de tus usuarios. Cuando un usuario inicia sesión, pueden crearse varios tipos de sesiones (p. ej., sesiones locales de la aplicación, sesión de Auth0, sesiones de terceros del ), y tendrás que determinar cuáles de esas sesiones deben finalizarse cuando el usuario haga clic en cualquier opción de Cerrar sesión.

Práctica recomendada

El comportamiento de cierre de sesión debe dejar claro al usuario qué sesión(es) se están finalizando y, de ser posible, mostrar una confirmación visual después.
Al configurar el comportamiento de cierre de sesión, deberás tener en cuenta lo siguiente:
  • ¿Qué sesiones deben finalizarse cuando el usuario inicia el cierre de sesión?
  • ¿Qué información debes proporcionar a los usuarios para confirmar qué sesiones se finalizaron?
  • ¿A dónde se debe redirigir a los usuarios una vez completado el cierre de sesión?
  • ¿Cuánto tiempo quieres que duren las sesiones si los usuarios no activan el proceso de cierre de sesión?
  • ¿Debe cerrarse la sesión del usuario final en todas sus aplicaciones cuando cierre sesión en una de ellas?
  • ¿También debe finalizarse al cerrar sesión la sesión con el IdP de una organización?
Dada la variedad de tipos de sesiones que pueden crearse cada vez que un usuario inicia sesión, existen varios tipos posibles de cierre de sesión. El cierre de sesión local de la aplicación finaliza la sesión con la aplicación, mientras que el cierre de sesión de Auth0 finaliza la sesión de Auth0. Si tienes organizaciones que usan su propio IdP, quizá debas considerar una estrategia de cierre de sesión federado e implementarla en consecuencia. El cierre de sesión global, o cierre de sesión único (SLO), finaliza la sesión de Auth0 y además envía una solicitud o notificación de cierre de sesión a las aplicaciones que dependen de la sesión de Auth0. La funcionalidad que proporciona tu aplicación, así como el uso de características como el inicio de sesión único (SSO), influirán en tu decisión sobre qué tipo de cierre de sesión se requiere y qué confirmación visual deberás proporcionar a tus usuarios. Independientemente de la opción que elijas, el proceso de cierre de sesión que implementes debe dejar claro al usuario qué sesiones se están finalizando y también cuándo se ha completado el proceso.
Si la funcionalidad de cierre de sesión de una aplicación finaliza una sesión de SSO de Auth0 que usan otras aplicaciones, el usuario puede perder trabajo si tiene transacciones sin confirmar. Asegúrate de añadir la funcionalidad necesaria para gestionar esas situaciones y minimizar la probabilidad de perder trabajo.
En algunas situaciones, puede esperarse que un usuario cierre sesión en todas las aplicaciones asociadas cuando cierre sesión en cualquiera de las aplicaciones que ofreces. Esto puede añadir complejidad. Sin embargo, si te preocupa que los usuarios puedan quedar expuestos (quizá debido a la sensibilidad de los datos o algo similar), probablemente tendrás que revisar Cierre de sesión único e implementarlo en consecuencia.

Dónde enviar a los usuarios después de cerrar sesión

Cuando el usuario cierre sesión, se le redirigirá a una ubicación específica que elija. Esta ubicación se especifica como la URL de redirección de cierre de sesión, y puede definirla como un parámetro mediante el . Las URL que utilice para redirigir a los usuarios después de cerrar sesión deben estar incluidas en la lista de permitidas del Dashboard para mitigar las vulnerabilidades de seguridad de redirección abierta. Puede incluirlas en la lista de permitidas a nivel de inquilino o de aplicación.
Si el usuario cierra sesión y se le redirige de vuelta a la aplicación, y la aplicación redirige a un Proveedor de identidad que aún tiene una sesión válida para el usuario, este iniciará sesión de forma silenciosa en la aplicación. Esto puede hacer que al usuario le parezca que el proceso de cierre de sesión no funcionó correctamente.

Finalización automática de sesiones

No todos los usuarios cerrarán sesión manualmente, por lo que Auth0 también ofrece un tiempo de espera de sesión para evitar sesiones demasiado prolongadas. Esta configuración está disponible y se puede configurar desde Auth0 Dashboard.

Cierre de sesión único

Si está implementando cierre de sesión federado, probablemente también quiera implementar el cierre de sesión único (SLO), y hay dos enfoques principales que puede seguir.
SLO puede añadir complejidad a su sistema, por lo que debe asegurarse de que realmente lo necesita antes de dedicar tiempo adicional de desarrollo y mantenimiento.

Tokens de corta duración

Práctica recomendada

Conviene evitar hacer demasiadas llamadas a su inquilino de Auth0 para evitar los límites de tasa y un rendimiento deficiente. Una práctica recomendada es solicitar nuevos tokens solo cuando hayan expirado y el usuario realice una acción. Esto evita que las aplicaciones que simplemente están abiertas, pero no en uso, consulten continuamente para obtener nuevos tokens.
Este es, con diferencia, el enfoque más simple para el cierre de sesión único. Cada aplicación aplica un periodo breve durante el cual un usuario puede usar el sistema, por ejemplo, de 5 a 10 minutos. En cada acción que realiza un usuario, si ese tiempo ha expirado, se usará un redireccionamiento a Auth0 (para aplicaciones web normales) o Autenticación silenciosa para las aplicaciones cliente de una sola página, con el fin de obtener nuevos tokens. Normalmente, los nuevos tokens se emitirán de forma silenciosa debido a la sesión de (SSO). Sin embargo, después del cierre de sesión, todas las aplicaciones no podrán obtener nuevos tokens de forma silenciosa porque la sesión de SSO se habrá eliminado, y el usuario tendrá que volver a introducir sus credenciales.
Si está redirigiendo automáticamente al usuario directamente a su propio IdP como parte de una conexión empresarial mediante el parámetro connection, esta técnica puede dejar de funcionar, a menos que también esté usando Federated Logout

Crear un servicio de cierre de sesión

Otra técnica que puede usar es crear un servicio de cierre de sesión capaz de rastrear y destruir las sesiones de la aplicación. Cada aplicación notificaría al servicio de cierre de sesión cuando crea y elimina una sesión. El servicio de cierre de sesión tendría acceso directo a todas las sesiones del lado del servidor de la aplicación y las destruiría directamente, o bien tendría la capacidad de hacer una llamada por canal secundario a cada aplicación para indicarle que debe eliminar su sesión. Esta técnica puede ser bastante eficaz, ya que hay poca latencia entre el momento en que un usuario cierra sesión y el momento en que se cierra la sesión en todas las aplicaciones. Sin embargo, puede añadir complejidad y también tiempo de desarrollo adicional para su implementación. También requerirá alguna forma de garantizar que las nuevas aplicaciones que se agreguen al sistema se incorporen a este servicio.

Cierre de sesión federado

Es posible que deba tener en cuenta el cierre de sesión federado de usuarios para su aplicación. Si usted o sus clientes van a usar un IdP de terceros (es decir, algo distinto de un Proveedor de identidad de base de datos), tendrá que decidir si es necesario cerrar la sesión del usuario en el IdP cuando cierre sesión en su aplicación. La respuesta depende de lo que esperen sus usuarios. Si la aplicación y/o el IdP que utiliza está estrechamente vinculado a una organización cliente y forma parte central de las operaciones diarias, puede resultar frustrante para los usuarios que se cierre su sesión en el IdP cuando cierran sesión en su aplicación. Si no es así, cerrar la sesión en el IdP puede ser lo esperado o, en algunos casos, incluso deseable. En la mayoría de los escenarios B2B, nuestros clientes consideran que es preferible no realizar el cierre de sesión federado de un usuario.

Guía de planificación del proyecto

Ofrecemos una guía de planificación en formato PDF que puede descargar y consultar para obtener más información sobre las estrategias que recomendamos. Guía de planificación de proyectos de B2B IAM