О компоненте

Сервис IAM (Identity and Access Management) (услуга 1.13) набор инструментов для аутентификации и авторизации пользователей в прикладных приложениях.
Компонент «Аутентификация Platform V IAM» отвечает за процессы аутентификации и включает в себя:
  • IAM Proxy;
  • IAM (Keycloak).
IAM Proxy сборка прокси-сервера nginx, обеспечивающая аутентифицированный доступ к ресурсам. Через IAM Proxy проходит весь трафик, в том числе и до ресурсов, не требующих аутентификации.
Функции IAM Proxy:
  • первичная аутентификация на основе ролей, получаемых из токена;
  • обогащение сессии параметрами аутентификации конвертация аутентификационных данных в метаданные запроса.
IAM (Keycloak) компонент для аутентификации и авторизации пользователей на базе open-source версии Keycloak 16.1. Представляет собой хранилище учетных записей и информации о пользователях.
Функции Keycloak:
  • аутентификация пользователей;
  • поддержка сценариев в рамках отраслевых протоколов: OpenID Connect, Oauth 2.0, SAML 2.0, User Managed Access (UMA);
  • хранение данных аутентификационных пользователей;
  • администрирование учетных записей.

Аутентификация в прикладном приложении

В процессах аутентификации задействованы компоненты IAM Proxy и IAM (Keycloak).
Когда пользователь отправляет через браузер запрос в прикладной сервис, этот запрос попадает в IAM Proxy шлюз безопасности, гарантирующий аутентификацию каждого проходящего через него запроса. Признак аутентификаци определяется наличием сессионных данных: cookie PLATFORM_SESSION.
Если сессионных данных нет
IAM Proxy направляет пользователя на аутентификацию в Keycloak хранилище учетных записей и информации о пользователях. Пользователи проходят аутентификацию по логину и паролю или через внешнего поставщика учетных записей (например, ЕСИА).
Keycloak передает ключ для сессионных данных cookie PLATFORM_SESSION и ссылкой на редирект в IAM Proxy с авторизационным кодом для завершения аутентификации. В Keycloak авторизационный код обменивается на id-, access- и refresh-токены JWT.
Если пользователь прошел аутентификацию через ЕСИА, в ключ organization access-токена добавляется или информация о выбранной организации, или значение 0, если пользователь вошел в систему как физическое лицо.
После успешной аутентификации пользователя запрос проксируется в прикладное приложение.
Если сессионные данные есть
Запрос проксируется в прикладное приложение, где проверяется валидность JWT-токена с использованием библиотеки для соответствующего языка программирования. Проверка упрощается Платформенным фильтром JWT: в его конфигурации указывается маска, которой должен соответствовать адрес Keycloak из поля iss JWT-токена: /auth/realms/{REALM}. В части {REALM} указывается имя реалма (Realm).
Realm область для управления каталогами пользователей, привилегий, ролей и групп. Каждый пользователь принадлежит конкретной области, в рамках которой проходит аутентификацию. Области изолированы друг от друга и аутентифицируют только тех пользователей, которые им принадлежат.
Если адрес Keycloak соответствует маске, в прикладное приложение возвращается публичный ключ для проверки JWT-токена. После проверки токена роль пользователя из Keycloak/ЕСИА сопоставляется с привилегиями в Объединенном сервисе авторизации (ОСА).
Подробнее об авторизации: «Авторизация в прикладном приложении».
Предыдущий раздел
Регламентная широковещательная рассылка сведений о виде...
Следующий раздел
Настройка проксирования
Была ли страница полезной?