Пропозиції щодо авторизації в сайдкар компоненті мікросервісної архітекрури - Носко, Сергій Вікторович; Бульба, Сергій Сергійович; Коломійцев, Олексій Володимирович; Лисиця, Дмитро Олександрович; Молчанов, Георгій Ігорович (Національний університет “Полтавська політехніка імені Юрія Кондратюка”, 2025)
У статті розроблено пропозиції щодо доцільності реалізації авторизації у сайдкар компоненті мікросервісу, що дозволяє відокремити бізнес-логіку від завдань авторизації, ведення журналів, кешування тощо. Така реалізація дозволяє основним бізнес-модулям залишатися сфокусованими виключно на своїй бізнес-логіці, змінюючись лише тоді, коли є оновлення у бізнес-процедурах, а задачі, які є загальними майже для будь-якого сучасного рішення,передавати допоміжним компонентам таким як сайдкар. Правильна реалізація авторизації виступає ключовим аспектом будь-якої системи, є дуже важливим та вимагає врахування великої кількості особливостей та використання передових практик для забезпечення збереження даних від несанкціонованого доступу. Розглянуто можливості open-source рішення Keycloak. Таке рішення є дуже популярним сервісом для аутентифікації/авторизації, має підтримку стандартних протоколів ідентифікації, таких як: OpenID Connect, OAuth 2.0, SAML 2.0. Рішення підтримує багатофакторну аутентифікацію, підтримує контейнеризацію та може бути легко розподіленим у середовищі мікросервісів як Kubernates та інтегруватися з різними зовнішніми сервісами, включаючи Google, Facebook тощо. Розроблено архітектуру та пропозиції, що необхідні для виконання інтеграції з сайдкар компонентом. Проведено дослідження щодо продуктивності розробленого рішення. Отримано числові значення, що наведено у таблицях та на графіку.

The article develops proposals on the feasibility of implementing authorization in the sidekick component of a microservice, which allows separating business logic from authorization tasks, logging, caching, etc. Such an implementation allows the main business modules to remain focused exclusively on their business logic, changing only when there are updates to business procedures, and tasks that are common to almost any modern solution to be transferred to auxiliary components such as a sidekick. Proper implementation of authorization is a key aspect of any system, it is very important and requires taking into account a large number of features and using best practices to ensure the safety of data fromunauthorized access. The possibilities of the open-source Keycloak solution are considered. This solution is a very popular service for authentication/authorization, it supports standard identification protocols, such as: OpenID Connect, OAuth 2.0, SAML 2.0. The solution supports multi-factor authentication, supports containerization, and can be easily distributed in a microservices environment like Kubernates and integrated with various external services, including Google, Facebook, etc. The architecture and proposals necessary for integration with the sidekick component are developed. A study on the performance of the developed solution was conducted. Numerical values were obtained and presented in tables and graphs. Additionally, it can integrate with various external services, including Google, Facebook, and others. The article presents the architecture and method required for integration with a sidecar component and includes a performance analysis of the proposed solution. To enhance the performance further, the sidecar architecture incor porates a local caching mechanism, utilizing Caffeine cache — known for its high performance and effectiveness. This cache stores authorization tokens, significantly decreasing the volume of calls required to Keycloak by reusing the tokens stored locally until they expire. This mechanism reduces reliance on central Keycloak servers and minimizes latency, providing a performance boost through decreased network traffic and accelerated token retrieval processes. Extensive performance testing was conducted using the Gatling framework to validate the integration and caching strategy. These tests demonstrated that the sidecar configura tion, equipped with the local Caffeine cache, maintained consistent performance under varying loads and was capable of horizontal scaling without degradation in response times. Moreover, the reduced load on the Keycloak servers showcased the effective ness of the caching approach in minimizing backend calls for token validations. The approach confirms the robustness and scalability of the sidecar, poised to handle increased loads efficiently while safeguarding sensitive authorization data.
Suggestions for authorization in the sidekick component of microservice architecture
Keywords: сайдкар; мікросервіс; авторизація; Keycloak; продуктивність; кеш; контейнер; Kubernates; масштабованість; open-source; Gatling; розподіл ресурсів; балансування навантаження; веб-сервер; інформаційна система; Sidecar; microservices; authorization; Keycloak; performance; cache; containers; Kubernetes; scalability; open-source; Gatling; resource allocation; load balancing; web server; information system