IAM-платформа на .NET
Микросервисная архитектура

Технологический стэк

Компонент
Технологии
Назначение
Backend
.NET 10 (C#)
Ядро платформы
Все микросервисы
Auth Core
OpenIddict
OAuth 2.0 / OpenID Connect
Выдача и валидация токенов
Frontend
OpenIddict
OAuth 2.0 / OpenID Connect
Выдача и валидация токенов
Показать больше

Архитектура

Микросервисная архитектура на .NET 10.
Микрофронтовый подход (Module Federation) для UI.

Характеристики

Протокол авторизации
OAuth 2.0 / OpenID Connect (OpenIddict)
Формат токенов
Reference-токены
Интроспекция (не JWT)
Взаимодействие сервисов
REST API
RabbitMQ (асинхронное)
Event Streaming
Debezium
Kafka (CDC)
Масштабирование
Горизонтальное
Kubernetes-native
Обновление
Поэтапное через ArgoCD

Почему reference-токены,
а не JWT

Мультиключ перешёл на reference-токены с интроспекцией вместо JWT

Reference-токены
JWT
Хранение
Вся информация в токене
Токен — только идентификатор, данные на сервере
Ревокация
Невозможна до истечения срока (или blocklist)
Мгновенная — удаляем токен на сервере
Размер
Растёт с количеством claims
Фиксированный, компактный
Утечка
Скомпрометированный JWT активен до expiry
Отзывается мгновенно

Функциональные модули

Управление пользователями

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

Роли и права доступа

  • Ролевая модель с тонкой настройкой прав.Permissions и scopes
  • Локализация permissions и scopes в интерфейсе.
  • Запрос ролей с маршрутом согласования.Запрос → одобрение/отклонение

Аутентификация

Auth Gateway на OpenIddict

  • OAuth 2.0 / OpenID Connect
  • Reference-токены + интроспекция
  • 2FA (TOTP)QR-коды для подключения + резервные коды
  • Rate-limiter от спама попыток входаПо user и по IP
  • Personal Access Tokens (PAT)
  • Внешние провайдерыKeycloak, LDAP, Google
  • Секреты через HashiCorp Vault
  • Хеширование паролей: Argon2id

Аудит и аналитика

  • Полный аудит-трейл всех операцийХранение в ClickHouse, 2x производительность vs MongoDB
  • Debezium + KafkaСтриминг событий изменений пользователей
  • Дашборд с графиками пользователей и круговой диаграммой статистикиЗапрос → одобрение/отклонение
  • БэкапыРучной запуск, скачивание, отслеживание статусов

APP-UI 2.0

  • Готовый веб-интерфейс для пользователей и администраторов.
  • Настройка брендинга и сценариев self-service.
  • Согласованный UX с остальными продуктами линейки.
  • Микрофронт для отслеживания и проведения миграций
  • 35+ UX/UI улучшений в последнем релизе

Мобильные приложения

  • Android: все основные экраны — пользователи, роли, уведомления, профиль
  • iOS: экран входа, загрузка профиля, KMP-интеграция.
  • Общая кодовая база через Kotlin Multiplatform

Мультиключ SDK и интеграции

SDK позволяет новому сервису подключить авторизацию и управление токенами очень быстро.

Доступны интеграции с Keycloak и Google

Безопасность

Аутентификация
OAuth 2.0 / OIDC (OpenIddict)
Reference-токены
Интроспекция
Многофакторная
2FA
TOTP
QR-коды
Резервные коды
Защита от перебора
Rate-limiter:
По user
По IP
Хеширование паролей
Argon2id
Управление секретами
HashiCorp Vault
Ревокация
Автоматическая ревокация сессий при архивации пользователя
Аудит
Полный аудит-трейл
Хранение в ClickHouse

Варианты развёртывания

On-premise

Docker-контейнеры для всех компонентов
Поддержка Kubernetes
Поддержка российских ОС

Облако (SaaS)

Управляемая инфраструктура (Kubernetes + ArgoCD)
SLA

Гибрид

Тестовые среды в облаке
Продуктивный контур on-premise

Системные требования

Системные требования для Core-сервисов. Расчёт произведён на основе Resource Requests (Min) и Limits (Recommended) с учётом сайдкаров (Istio, Vault).

Компонент
Реплики
CPU (Min/Rec)
RAM (Min/Rec)
mcdis-control-cluster-authorization
6
2.0 / 6.0 vCPU
2.0 / 6.0 GiB
mcdis-control-user-accounts-management
1
0.5 / 1.0 vCPU
1.5 / 2.0 GiB
ui-hub & auth-id-page
2
0.5 / 1.0 vCPU
1.0 / 2.0 GiB
Остальные (db-owner, status-checker, etc.)
~2
0.5 / 1.0 vCPU
1.0 / 2.0 GiB

Ресурсы, необходимые для работы вспомогательных служб при развёртывании на том же узле:

Служба
CPU (Зарезервировано)
RAM (Зарезервировано)
PostgreSQL v16+
1.0 vCPU
4.0 GiB
PgBouncer
1.0 vCPU
1.0 GiB
Redis v7.4+
1.0 vCPU
2.0 GiB
RabbitMQ v3.13+
1.0 vCPU
2.0 GiB
ElasticSearch
2.0 vCPU
8.0 GiB
HashiCorp Vault
1.0 vCPU
2.0 GiB
Argo CD
1.0 vCPU
2.0 GiB

Готовы навести порядок в инфраструктуре?