Soporte y mantenimiento al sistema de aportes a la seguridad social del país del operador ARUS (2021)
RESUMEN: Hoy en día el pago de la seguridad social es un derecho que tienen todos los colombianos para acceder a un servicio de salud y/o una pensión. El proyecto tiene como propósito facilitar a las personas o empresas llamados aportantes el pago de la seguridad social, con el deber de mantener el software actualizado con las nuevas resoluciones que instaura el ministerio de salud y protección social, los cuales definen las condiciones y las obligaciones que deben cumplir los aportantes. El proyecto tiene una gran cantidad de usuarios activos en el sistema, por tanto los retos que se presentan tanto técnicos como de negocio exigen la necesidad de desarrollar nuevas funcionalidades que permitan la evolución, escalabilidad y seguridad del proyecto para garantizar un rendimiento y funcionalidad de acuerdo a la demanda que este tiene. El proceso de práctica se desarrolló basado en un enfoque de arquitectura de microservicios, que presenta muchos beneficios como son: la escalabilidad, disponibilidad y despliegue. De algún modo también trajo muchos retos al momento de diseñar la solución de comunicación entre microservicios, de forma eficiente y segura que no afectará considerablemente el rendimiento de la aplicación. El problema en sí, radicó al momento de comunicar los diferentes microservicios, puesto que cada uno de estos expone unos recursos por medio de un API rest, que a su vez están protegidos por una autorización, esto debido a que están expuestos a internet y solo los usuarios autorizados pueden consumir estos recursos. Por lo tanto si queremos consumir el recurso, es necesario obtener un token de autorización, que se obtiene enviando el usuario y contraseña que se crea al momento de registrarse en la aplicación. Sin embargo esto no es funcional ni práctico cuando queremos consumir dentro de una aplicación un recurso de otro microservicio. Por ejemplo, al momento de ejecutar tareas asíncronas que se ejecutan de manera programada, o cuando se requiere procesar un mensaje por una broker de mensajería y se requiere algún recurso de algún microservicios, en estos casos no se tienen un token de autorización que nos permite acceder al recurso en cuestión. Para la solución al problema expuesto, se implementó el protocolo OAuth 2.0, un estándar para la autorización de aplicaciones en el desarrollo de software, usando el flujo “Client Credential” definido en el protocolo. Este flujo está enfocado en resolver el problema de la comunicación, backend a backend, permitiendo consumir los recursos expuestos por otros microservicios. Por consiguiente también se logra generar una guía arquitectónica para desacoplar la aplicación en diferentes microservicios, con única responsabilidad, logrando de esta manera mejorar técnicamente la aplicación y cumplir los objetivos propuestos.