Unified Identity Management logo figure Unified Identity Management logo figure
Поиск Поиск по документации

Типовая архитектура RooX UIDM

Концептуальная архитектура RooX UIDM

Концептуальная архитектура решения представлена ниже.

arch concept
Рисунок 1. Концептуальная схема

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

Каждый сервис зарезервирован в режиме Active-Active, точный коэффициент резервирования рассчитывается в зависимости от нагрузки.

Описание компонентов

  • RooX UIDM - центральный сервис аутентификации. Выполняет аутентификацию, предоставляет API для аутентификации, самообслуживания и администрирования. Состоит из порядка 10 сервисов, которые приведены ниже

  • Profile Database - основная СУБД с пользователями и техническими данными, нужными для работы RooX UIDM. Размер БД пропорционален количеству пользователей. В качестве РСУБД может использоваться Postgresql или Oracle

  • Audit Database - СУБД с аудит-логом. Содержит все действия всех пользователей. В качестве РСУБД может использоваться Postgresql или Oracle, но могут использоваться и внешние NoSQL хранилища на усмотрение заказчика

  • Сессии - оперативное хранилище выданных токенов и сессий пользователей и систем. Используется Tarantool

  • Notifier - служебный сервис для шаблонизации и доставки исходящих уведомлений и одноразовых паролей. Интегрируется с каналами, например Email, SMS, Push, Voice. Протоколы доставки могут быть кастомными

  • Policy Engine - центральный сервис авторизации. Вычисляет, разрешен ли доступ пользователей к веб-ресурсам. Используется движок, основанный на Open Policy Engine

  • Access Gateway - шлюз доступа, через который проходят все запросы к веб-ресурсам. Прерывает запрос и отправляет в Policy Engine для принятия авторизационного решения. Могут быть использованы разные шлюзы на усмотрение заказчика

  • WebAPI - пример защищаемого веб-приложения

Полный список сервисов

Прикладные сервисы

Сервис Назначение

api-gateway

Прерывает запросы, делегирует в Policy Engine, преобразовывает протоколы, упрощает интеграцию сторонним сервисам (BFF). RooX разрабатывает гейтвеи на технологии Spring Boot, но решение не ограничивается только ей

audit-search-api

Фасад перед БД аудита, используется для прикрытия обращений к БД Аудита REST API

certificate-service

Сервис управления пользовательскими сертификатами

customer-webapi

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

federation-webapi

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

identity-sync-service

Сервис фоновой синхронизации Active Directory и RooX UIDM

oauth2-consumer-server

Обработчик протокола OAuth2 от лица Service Provider, используется в случаях, когда заказчик имеет только SPA

sso-server

Основной сервис аутентификации

opa

Вычислитель авторизационных решений

token-storage

Фасад перед хранилищем токенов

audit-writer

Запись событий аудита в БД из очереди сообщений асинхронного аудита

webapi-notifier

Сервис шаблонизации и доставки уведомлений

webapi-server-otp-settings

Сервис управления настройками 2 фактора

Хранилища

Хранилище Назначение

tarantool

Хранилище токенов на базе Tarantool

postgresql/oracle

Хранилище постоянных данных RooX UIDM (профили, блокировки, аудит)

opendj

Legacy-хранилище токенов на базе LDAP. Больше не внедряется.

Инфраструктурные сервисы, предоставляются заказчиком

Сервис Назначение

extLb

Внешний балансировщик, выставляет сервисы в открытый Интернет. Так же выполняет SSL Offload. В настоящее время, как правило, содержит WAF

intLB

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

sms gateway, email service

Транспорты для доставки сообщений клиентам. Заказчик обычно уже содержит такие сервисы или подрядчиков, так что в проекте внедрения выполняется интеграция с имеющимися сервисами доставки

CDN

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

monitoring

Сервис мониторинга

tracing

Сервис централизованного логгирования