Full Stack Developer en La Casa de las Carcasas2024 – actualidad
Inicio de sesión único corporativo para 22 aplicaciones internas
Un único inicio de sesión para todas las aplicaciones internas de la empresa, en lugar de uno por aplicación, construido con Laravel y con tokens delegados OAuth 2.0 para las llamadas seguras entre aplicaciones.
22
aplicaciones internas en producción, y desplegándose en el resto
Contexto
La Casa de las Carcasas es una cadena de accesorios para móviles con más de 5.000 empleados, más de 1.200 tiendas en todo el mundo y almacenes en Europa y Latinoamérica. Sus equipos trabajan con más de 22 aplicaciones internas.
Problema
Cada aplicación interna tenía su propio login. Eso tenía dos costes:
- Trabajo duplicado. Había que desarrollar la autenticación de nuevo en cada aplicación y después mantener cada versión por separado.
- Más puntos de fuga. Cada login era una puerta de entrada distinta por la que podían filtrarse credenciales, con su propia implementación que mantener segura.
Qué hice
- Construí un servicio de inicio de sesión único corporativo con Laravel, para que las aplicaciones deleguen el login en un solo sitio en lugar de implementarlo cada una.
- Añadí tokens delegados OAuth 2.0 para que una aplicación pueda pedir datos a los endpoints de otra de forma segura, en nombre del usuario.
- Guardé las sesiones en Redis y optimicé las llamadas entre las aplicaciones y el SSO para que cada navegación tenga el mínimo retraso posible.
- Desarrollé librerías privadas de Composer y npm que usan las aplicaciones para integrarse con el SSO.
- Lo desplegué aplicación por aplicación: ya funciona en 22 aplicaciones internas y se está extendiendo al resto.
Resultado
- 22 aplicaciones internas en producción, y desplegándose en el resto.
- Unos 9.000 usuarios potenciales en toda la empresa.
- Una sola autenticación que desarrollar, mantener y proteger, en lugar de una por aplicación.
Stack
Laravel, OAuth 2.0, Redis y paquetes privados de Composer y npm.
Qué aprendí
Sobre todo, aprendizaje técnico: todo lo que se puede hacer con un inicio de sesión único bien implementado. Los tokens OAuth 2.0 entre aplicaciones son el mejor ejemplo. Cuando las aplicaciones comparten identidad, una puede pedirle datos a otra a través de sus endpoints, de forma segura y en nombre del usuario.
También me obligó a trabajar mucho la optimización de las llamadas, para que pasar de una aplicación a otra añada el menor retraso posible, y el diseño de librerías privadas de Composer y npm de las que dependen muchas aplicaciones a la vez.
- Laravel
- OAuth 2.0
- Redis
- Composer
- npm