SSO o inicio de sesión único en Mindbaz

por | Oct 16, 2023

Con la multiplicación de productos de Mindbaz en los últimos años, nos hemos puesto a pensar en cómo los usuarios se autenticarían en los diferentes sitios y aplicaciones. Por eso, llegamos a la idea de SSO.

En el ecosistema Mindbaz, el usuario se conecta a la aplicación SaaS por un lado (Mail) pero también a diferentes herramientas como Automation y SMS. Del lado de los equipos de Mindbaz, también tenemos que conectarnos a herramientas de supervisión y BackOffice. Algunos clientes de Mindbaz también utilizan el acceso a la cuenta API para integrar Mindbaz en sus propias herramientas.

Entre las soluciones consideradas y que ya tienen una base de datos que agrupa las cuentas de usuario, naturalmente nos dirigimos hacia un sistema de autenticación centralizado.

La autenticación única, también conocida como SSO, es un método de autenticación centralizada que tiene como objetivo autenticarse una sola vez, para tener acceso a un conjunto completo de aplicaciones desde la cuenta de usuario.

Implementación del SSO

La migración hacia una autenticación centralizada pasa necesariamente por la puesta en marcha de un servidor de autenticación. Este, desempeñará el papel de directorio centralizado para controlar los accesos de los usuarios a los diferentes recursos. 

Así, se emitirá un token de autenticación también llamado token JWT (Json Web Token). Este token se enviará al cliente y se devolverá al servidor con cada solicitud HTTP, lo que le permitirá identificar al usuario.

En Mindbaz, también hemos implementado, junto con el servidor SSO, una aplicación de autenticación que agrupa las páginas:

  • Autenticación por registro/contraseña
  • Contraseña olvidada
  • Restablecimiento de contraseña
  • Desbloqueo de cuenta

Además, permite centralizar las reglas de autenticación, como la definición de la contraseña, así como las acciones en la cuenta de usuario.

schema authentification unique sso

Funcionamiento de la autenticación única o SSO

Cuando el servidor recibe un token JWT durante una solicitud de cliente (API o aplicación), este se valida gracias a la información contenida en su carga útil, también llamada “payload”. Esta carga incluye el momento exacto en el que se emitió el token para determinar si aún es válido.

La duración de la validez del token forma parte de los parámetros que se definen al emitir el servidor de autenticación.

En caso de que el token expire, la carga útil del token contiene un dato llamado “refresh token”. Cuando se llama a un recurso (sitio/API) y el token se designa como caducado, el envío del dato refresh token al SSO permite a la aplicación cliente prolongar la validez de este solicitando la emisión de un nuevo par token/refresh_token. Durante esta prórroga, el SSO vuelve a validar los accesos de usuario y emite un nuevo par token/refresh_token y simultáneamente invalida los pares emitidos anteriormente.

Por lo tanto, el usuario se ha “reconectado” con el recurso al que quería acceder.

requête authentification

Críticas y puntos de vigilancia del SSO

El token da acceso a varios recursos potenciales según los derechos otorgados al usuario. Si una cuenta es usurpada, una persona malintencionada puede tener acceso a muchos más datos y aplicaciones que con una sola cuenta por aplicación. Por lo tanto, la implementación de medidas de seguridad para reforzar el aspecto de autenticación va de la mano con el uso de un SSO.

En Mindbaz también hemos implementado la doble autenticación para reforzar este aspecto, por lo que, durante una nueva conexión desde un lugar desconocido, se envía una alerta por email al usuario y se necesita un mensaje de texto de confirmación con un código único para autenticarse.

Oauth2

La implementación de un SSO se rige por protocolos, incluido el protocolo Oauth2 que define especificaciones técnicas sobre el uso de dicho modo de autenticación.

Este protocolo tiene la aprobación de muchos sitios como Google y Facebook y se ha establecido como un estándar en este campo.