Single SignOn

Patrón arquitectónico

La autenticación de los usuarios es uno de los procedimientos más normales de una aplicación, pues prácticamente todas las aplicaciones necesitan saber la identidad del usuario que lo está utilizando, pero a medida que las empresas crecen, lo hacen también el número de aplicaciones necesarias para soportar la operación, lo que hace que los usuarios tengan que recordar las credenciales para cada aplicación, lo que reduce la productividad y es molesto para los usuarios.

Problemática

En un entorno empresarial es común que las empresas tengan múltiples aplicaciones y en cada una de estas, el usuario tenga una cuenta diferente, ya sea que tenga un password diferente o incluso, un nombre de usuario diferente.

En la práctica es común ver que los usuarios se autentican con su correo empresarial, mientras que en otros, necesitan un nombre de usuario generado por el sistema o por el departamento de sistemas, lo que hace confuso para los usuarios que cuenta utilizar en cada una de las aplicaciones, sumado a esto, el password varía según la aplicación.

Inicio de sesión por aplicación
Inicio de sesión por aplicación

Como podemos ver en la imagen anterior, cada usuario necesita introducir credenciales diferentes para cada aplicación, lo que lo obliga a recordar su nombre de usuario y password para cada aplicación.

Por otro lado, cada aplicación deberá contar con un equipo de administración especializado para dar acceso a cada aplicación, lo que hace que dar acceso o desbloquear usuario sea una tarea complicada, además del costo de tener un equipo de soporte especializado para cada aplicación.

Solución

Para solucionar este problema es necesario separar la lógica de autenticación de la aplicación como un componente independiente, que tenga como única responsabilidad la de autenticar a los usuarios.

Implementando un SSO
Implementando un SSO

La imagen anterior ilustra como quedaría una arquitectura que implementa SSO (Single Sign On), en el cual podemos apreciar cómo hemos agregado un componente central encargado únicamente de la autenticación.

La imagen anterior puede resultar sumamente confusa, pues existen demasiados flujos que parecen no tener sentido, además, la ejecución de los pasos puede variar según si el usuario ya está autenticado o no, por lo que comenzaremos analizando el escenario donde un usuario no autenticado intenta entrar a cualquier aplicación.

Conclusiones

Como hemos podido observar, la configuración del SSO puede ser algo complicado, sobre todo por los redireccionamientos necesario que tenemos que hacer y la coordinación para que estos funcionen correctamente, pero una vez que lo logramos proporciona una experiencia muy agradable para el usuario, el cual muchas veces ni se entera de que salió de la aplicación para la autenticación.

Acerca de este libro

Introducción a la arquitectura de software

Todo lo que acabas de ver en este artículo es solo una pequeña parte del libro Introducción a la arquitectura de software, el libro más completo en español sobre arquitectura de software, donde cubrimos los temas más importantes para convertirte en un arquitecto de software profesional.

¿Quieres convertirte en arquitecto de software pero no sabes cuál es el camino adecuando? o simplemente no sabes que guía estudiar para convertirte en arquitecto de software, te invito a que veas mi libro:

Ver libro
Todos los derechos reservados ©
Reactive programming
LinkedinYoutubeTwitterFacebook

© 2021, Copyright - Oscar Blancarte. All rights reserved.