Por qué el inicio de sesión único (SSO) es mejor
El inicio de sesión único (SSO) es una excelente manera de simplificar el modelo de autenticación y mejorar la experiencia del usuario para cada aplicación. Aquí está el porqué.
El inicio de sesión único (SSO) es una tecnología que permite a los usuarios autenticarse una vez y acceder a múltiples aplicaciones. Si solo tienes una aplicación, puede sonar excesivo. Sin embargo, comenzar con SSO desde el principio puede ahorrarte muchos dolores de cabeza en el futuro, y la implementación de SSO es más fácil de lo que piensas.
Antes de empezar, debemos señalar que hay dos tipos de SSO:
- El primer tipo es cuando tienes múltiples aplicaciones que comparten la misma base de datos de usuarios. Este es el tipo de SSO que discutiremos en este artículo.
- El segundo tipo es cuando tu cliente tiene un proveedor de identidad centralizado (IdP) y necesitas integrarte con él. Esto está fuera del alcance de este artículo.
¿Por qué SSO?
Simplifica el modelo de autenticación
El beneficio más obvio de SSO es que simplifica el modelo de autenticación. Imagina que comienzas con una tienda en línea, el modelo de autenticación inicial es sencillo:
A medida que tu negocio crece, decides agregar una aplicación de gestión de tiendas para permitir a los propietarios gestionar sus tiendas. Ahora tienes dos aplicaciones que necesitan autenticar a los usuarios.
Aquí están algunas opciones que tienes:
1. Puedes crear una base de datos de usuarios separada para la aplicación de gestión de tiendas.
Esta es la solución más simple, pero significa que necesitas implementar el proceso de autenticación para la aplicación de gestión de tiendas y los usuarios tienen que crear una nueva cuenta para usar la aplicación.
2. Puedes usar la misma base de datos de usuarios para ambas aplicaciones.
Esta es una mejor solución porque los usuarios no necesitan crear una nueva cuenta. Sin embargo, aún necesitas implementar el proceso de autenticación para la aplicación de gestión de tiendas.
3. Puedes usar SSO.
Esta es la mejor solución hasta ahora. No necesitas implementar otro proceso de autenticación y los usuarios no necesitan crear una nueva cuenta para la aplicación de gestión de tiendas. Además, puedes agregar más aplicaciones y métodos de inicio de sesión sin cambiar el modelo de autenticación o la experiencia del usuario.
Mejora la experiencia del usuario
SSO mejora la experiencia del usuario de dos maneras:
- Los usuarios pueden compartir la misma cuenta en múltiples aplicaciones.
- Una vez que los usuarios inician sesión en una aplicación, no necesitan iniciar sesión nuevamente en otras aplicaciones en el mismo dispositivo.
Pueden surgir algunas preocupaciones aquí, pero todas son abordables.
1. ¿Cómo diferenciar las aplicaciones?
El inicio de sesión único no significa que tratemos todas las aplicaciones igual. En el conocido estándar abierto OpenID Connect, cada aplicación se llama cliente, y los flujos de autenticación difieren según el tipo de cliente. Aunque los usuarios finales no necesitan conocer la diferencia, el tipo de cliente es importante para que el servidor de autenticación determine el flujo de autenticación.
2. ¿Qué pasa si los usuarios no quieren compartir la misma cuenta?
Esto es una preocupación válida, pero no es un problema con SSO. Si los usuarios no quieren compartir la misma cuenta, pueden crear una nueva cuenta para la nueva aplicación. La clave es dar a los usuarios la opción de elegir.
3. ¿Qué pasa si necesito restringir el acceso a ciertas aplicaciones?
De hecho, SSO es una técnica de autenticación, mientras que el control de acceso es para la autorización. SSO puede desacoplarse del control de acceso. Por ejemplo, puedes usar SSO para autenticar a los usuarios, luego usar control de acceso basado en roles (RBAC) para restringir el acceso a ciertas aplicaciones o recursos.
Para aprender más sobre autenticación y autorización, consulta CIAM 101: Autenticación, Identidad, SSO.
4. SSO requiere redirigir a los usuarios al servidor de autenticación.
La redirección es una práctica estándar para la autenticación. Considerando la experiencia del usuario, podemos aprovechar múltiples técnicas para reducir la fricción:
- Usar tokens de actualización para reducir la frecuencia de autenticación.
- Inicializar el proceso de autenticación con un método de inicio de sesión específico, como Google o Facebook, para reducir el número de clics.
- Aprovechar la autenticación silenciosa para acelerar el proceso de autenticación.
Mejora la seguridad
1. Un lugar central para todas las operaciones relacionadas con la seguridad
SSO te permite gestionar todas las operaciones relacionadas con la seguridad en un lugar central. Por ejemplo, como mencionamos en la sección anterior, SSO puede seguir diferenciando aplicaciones y aplicar flujos de autenticación específicos de plataforma para cada aplicación. Sin SSO, necesitas implementar varios flujos de autenticación según el tipo de aplicación.
Además, características avanzadas de seguridad como autenticación multifactor (MFA) son más fáciles de implementar con SSO sin desorganizar el modelo de autenticación.
2. Reduce la superficie de ataque
En teoría, SSO reduce la superficie de ataque porque solo necesitas asegurar un servidor de autenticación en lugar de múltiples aplicaciones. El enfoque centralizado también facilita el monitoreo y la detección de actividades sospechosas.
3. Estándares y protocolos probados en batalla
Estándares y protocolos abiertos como OpenID Connect y OAuth 2.0 son ampliamente utilizados en la industria y han sido probados en batalla durante años. Ambos coinciden con el concepto de SSO y son compatibles con la mayoría de los proveedores de identidad (IdPs). Al combinar estos estándares con SSO, puedes tener un sistema de autenticación seguro y confiable.
Bien, implementemos SSO
Implementar SSO puede ser grande y complicado, hay muchas cosas a considerar, tales como:
- Cumplimiento con estándares y protocolos
- Flujos de autenticación para diferentes tipos de clientes
- Múltiples métodos de inicio de sesión
- Características de seguridad como MFA
- Experiencia del usuario
- Control de acceso
Cada uno de estos temas puede ser un artículo separado y abrumador. Por el bien de la simplicidad, es mejor comenzar con un servicio gestionado que proporcione SSO listo para usar. Nuestro producto Logto es un servicio así, y solo te tomará unos minutos integrarlo en tu aplicación.
Una de las preocupaciones más comunes al usar un servicio gestionado es la dependencia del proveedor. Afortunadamente, esto no es un problema con Logto. Logto está construido sobre OpenID Connect y OAuth 2.0, y nació de código abierto. Priorizamos brindar seguridad a nuestros clientes y buscamos capacitarte con la libertad de elegir.