Сквозная аутентификация микросервисных приложений | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 30 ноября, печатный экземпляр отправим 4 декабря.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №14 (461) апрель 2023 г.

Дата публикации: 06.04.2023

Статья просмотрена: 670 раз

Библиографическое описание:

Имамбердиев, Ф. Ф. Сквозная аутентификация микросервисных приложений / Ф. Ф. Имамбердиев. — Текст : непосредственный // Молодой ученый. — 2023. — № 14 (461). — С. 9-12. — URL: https://moluch.ru/archive/461/101306/ (дата обращения: 22.11.2024).



Ключевые слова: программный модуль, сквозная аутентификация, технология единого входа, микросервисные приложения.

Микросервисная архитектура набирает большую популярность за последнее время и представляет собой подход к разработке программного обеспечения, при котором большие приложения разбиваются на небольшие автономные модули, которые разрабатываются и развертываются независимо друг от друга. Использование данного подхода представляет сложность в обеспечении безопасности доступа к различным сервисам через общую систему аутентификации и авторизации. Пользователям необходимо проходить процедуру аутентификации и авторизации в каждом сервисе отдельно, что является неэффективным и затратным [1].

В традиционной монолитной архитектуре аутентификация и авторизация осуществляется централизованно на уровне приложения. В контексте микросервисной архитектуры, каждый сервис является отдельным автономным приложением, что усложняет управление аутентификацией и авторизацией. Для решения данной проблемы вводится сквозная аутентификация на основе технологии единого входа (SSO), которая позволяет пользователю войти в систему только один раз и автоматически получить доступ к различным сервисам, не вводя повторно учетные данные.

Данная проблема является важной, так как существует повышенный спрос на обеспечение безопасности в сфере информационного обмена, в связи с распространением множества приложений и сервисов, которые необходимо аутентифицировать. Это вызвано не только требованием защиты от различных угроз, таких как несанкционированный доступ к ресурсам и данным, а также утечки конфиденциальной информации, но и ростом количества систем, использующих микросервисную архитектуру. В настоящее время данная архитектура становится все более популярной, что усиливает потребность в эффективных средствах аутентификации пользователей и сервисов, работающих в различных системах. Программный модуль сквозной аутентификации на основе SSO позволит решить данную проблему и повысить уровень безопасности в области сетевого взаимодействия.

SSO — технология, которая позволяет пользователям аутентифицироваться только один раз для доступа к различным приложениям или сервисам, вместо того чтобы каждый раз вводить учетные данные. Когда пользователь входит в систему, SSO генерирует токен аутентификации, который сохраняется в хранилище токенов. При попытке доступа к другим приложениям или сервисам, они запрашивают у SSO токен аутентификации. Если токен действителен, то пользователь получает доступ к запрошенному ресурсу, без необходимости повторно вводить логин и пароль [2].

Реализацией данного программного модуля является отдельный сервис авторизации.

В качестве входных данных у программного модуля выступают:

  1. логин пользователя;
  2. пароль пользователя;
  3. секретные ключи client_id, client_secret которые создает ПМ для каждого клиентского приложения.

Client_id представляет собой уникальный идентификатор, выданный клиентскому приложению при его регистрации в ПМ. Данный ключ используется для идентификации приложения во время процесса аутентификации и авторизации.

Client_secret — секретный ключ, который выдается клиентскому приложению вместе с client_id. Данный ключ используется для подписи запросов, отправляемых с клиентского приложения на ПМ, и для проверки подписи ответов, получаемых от ПМ.

Использование client_id и client_secret обеспечивает безопасность процесса аутентификации и авторизации, так как клиентское приложение идентифицируется и авторизуется в ПМ перед получением доступа к ресурсам, защищенным с помощью SSO.

В качестве выходных данных у программного модуля выступают:

  1. access токен;
  2. refresh токен;
  3. срок жизни access токена.

Access токен — токен, который выдается после успешной аутентификации пользователя и который используется для авторизации доступа к ресурсам и сервисам, к которым пользователь имеет право доступа. Refresh токен — токен, который используется для обновления access токена после истечения его срока действия. Срок жизни access токена определяет время, в течение которого данный токен действителен.

Access и refresh токены создаются на основе протокола JWT, который применяется для обмена информацией между клиентом и сервером в формате, который безопасно хранится и передается в URL-адресах, POST-запросах или заголовках HTTP. JWT позволяет создавать токены, которые проверяются без дополнительной связи между клиентом и сервером [3].

Данные токены необходимы для обеспечения безопасности и авторизации доступа к ресурсам и сервисам. Access токен предоставляет доступ к ресурсам, которые запрошены пользователем при аутентификации, а refresh токен обновляет access токен после истечения его срока действия. Данные токены защищены от фальсификации и доступны только тому пользователю, который успешно аутентифицирован и авторизован.

Взаимодействие с программным модулем осуществляется посредством REST API. REST — стиль архитектуры, который применяется при построении распределенных систем. Данный стиль предлагает определенные ограничения для создания веб-сервисов, которые взаимодействуют друг с другом. В рамках REST API используются различные методы HTTP для выполнения запросов к сервисам, такие как GET, POST, PUT и DELETE [4].

ПМ предоставляет следующие REST API методы:

  1. регистрации пользователя;
  2. аутентификации пользователя;
  3. авторизации пользователя;
  4. метод обновления access токена по refresh токену.

Схема данных для программного модуля представлена на рис. 1.

Схема данных программного модуля

Рис. 1. Схема данных программного модуля

Алгоритм работы программного модуля представлен на рис. 2.

Алгоритм работы программного модуля

Рис. 2. Алгоритм работы программного модуля

Использование программного модуля сквозной аутентификации на основе SSO является необходимым для обеспечения безопасности и авторизации доступа к ресурсам и сервисам, особенно в условиях растущего спроса на микросервисную архитектуру. Реализация данного модуля позволяет повысить уровень безопасности в области сетевого взаимодействия и упростить процесс аутентификации и авторизации пользователей в различных системах.

Литература:

  1. Authentication in microservices. URL. — Текст: электронный // Frontegg: [сайт]. — URL: https://frontegg.com/blog/authentication-in-microservices
  2. How Does Single Sign-On Work. — Текст: электронный // one-login by one identity: [сайт]. — URL: https://www.onelogin.com/learn/how-single-sign-on-works
  3. Безопасность JSON Web Tokens. — Текст: электронный // Cyber polygon URL: [сайт]. — URL: https://cyberpolygon.com/ru/materials/security-of-json-web-tokens-jwt/
  4. Rest API documentation. — Текст: электронный // IBM URL: [сайт]. — URL: https://www.ibm.com/docs/en/inventory-visibility?topic=apis-rest-api-documentation
Основные термины (генерируются автоматически): SSO, программный модуль, REST, API, клиентское приложение, HTTP, JWT, микросервисная архитектура, обеспечение безопасности, сквозная аутентификация.


Ключевые слова

программный модуль, сквозная аутентификация, технология единого входа, микросервисные приложения

Похожие статьи

Формализованная модель обнаружения сканирования портов

Сформулирована формализованная модель обнаружения сканирования портов, описаны необходимы модули программного комплекса, разработана архитектура и пользовательский интерфейс программного комплекса обнаружения сканирования портов.

Обеспечение безопасного доступа и управления идентификацией веб-приложений

В статье рассматривается Kеyсloak — сервис управления идентификацией и доступом с открытым исходным кодом. Его использование упрощает разработку безопасности веб-приложения практически без кода.

Автоматизация кроссбраузерного тестирования

В статье рассматриваются особенности предлагаемого подхода в процессе автоматизированного кроссбраузерного тестирования web-приложений.

Особенности кроссбраузерного/кроссплатформенного тестирования

В статье рассматривается отличительные особенности кроссбраузерного тестирования и их автоматизация.

Разработка системы удаленной компиляции

В статье будут рассмотрены и проанализированы существующие подходы к решению задачи удаленной компиляции и предложен альтернативный подход, сочетающий в себе простоту и безопасность использования, высокую скорость работы.

Разработка автоматизированной системы распознавания государственных регистрационных знаков транспортных средств

Децентрализованная система управления программным обеспечением для IoT-устройств

Разработка программного обеспечения для децентрализованной идентификации IoT-устройств в сетях

Востребованные технологии для разработки микросервисов

В данной статье производится обзор и анализ сочетания наиболее востребованных технологий, применяемых в разработке программных продуктов с микросервисной архитектурой.

Методы обеспечения высоконадежной обработки информации в децентрализованных приложениях

Выделены характеристики децентрализованных приложений, проведен анализ их функционирования. Рассмотрены методы обеспечения надежности и безопасности использования децентрализованных приложений.

Похожие статьи

Формализованная модель обнаружения сканирования портов

Сформулирована формализованная модель обнаружения сканирования портов, описаны необходимы модули программного комплекса, разработана архитектура и пользовательский интерфейс программного комплекса обнаружения сканирования портов.

Обеспечение безопасного доступа и управления идентификацией веб-приложений

В статье рассматривается Kеyсloak — сервис управления идентификацией и доступом с открытым исходным кодом. Его использование упрощает разработку безопасности веб-приложения практически без кода.

Автоматизация кроссбраузерного тестирования

В статье рассматриваются особенности предлагаемого подхода в процессе автоматизированного кроссбраузерного тестирования web-приложений.

Особенности кроссбраузерного/кроссплатформенного тестирования

В статье рассматривается отличительные особенности кроссбраузерного тестирования и их автоматизация.

Разработка системы удаленной компиляции

В статье будут рассмотрены и проанализированы существующие подходы к решению задачи удаленной компиляции и предложен альтернативный подход, сочетающий в себе простоту и безопасность использования, высокую скорость работы.

Разработка автоматизированной системы распознавания государственных регистрационных знаков транспортных средств

Децентрализованная система управления программным обеспечением для IoT-устройств

Разработка программного обеспечения для децентрализованной идентификации IoT-устройств в сетях

Востребованные технологии для разработки микросервисов

В данной статье производится обзор и анализ сочетания наиболее востребованных технологий, применяемых в разработке программных продуктов с микросервисной архитектурой.

Методы обеспечения высоконадежной обработки информации в децентрализованных приложениях

Выделены характеристики децентрализованных приложений, проведен анализ их функционирования. Рассмотрены методы обеспечения надежности и безопасности использования децентрализованных приложений.

Задать вопрос