Перейти к основному содержимому

Realm-ы

Realm -- это изолированный домен аутентификации в VoxKey. Каждый realm работает независимо со своим набором пользователей, приложений, провайдеров, криптографических ключей и настроек.

Что входит в Realm

КомпонентОписание
ПользователиАккаунты, привязанные к этому realm
ПриложенияOAuth2-клиенты (веб-приложения, SPA, M2M-сервисы)
ПровайдерыМетоды аутентификации (Google, GitHub, пароль и т.д.)
Роли и скоупыRBAC-разрешения для доступа к API
КлючиRSA-ключи для подписи и шифрования JWT
СессииАктивные сессии пользователей (отслеживаются через cookie rid)
БрендингКастомное оформление страницы входа

Как это работает

Каждый OAuth2-эндпоинт привязан к realm через UUID:

/oauth2/{realmUUID}/code
/oauth2/{realmUUID}/token
/oauth2/{realmUUID}/.well-known/openid-configuration

Пользователи одного realm полностью изолированы от пользователей другого. Один и тот же email может существовать в нескольких realm-ах как отдельные аккаунты.

Сценарии использования

Мультитенантный SaaS -- каждому клиенту свой realm с отдельным пулом пользователей, брендингом и провайдерами.

Разделение окружений -- разные realm-ы для development, staging и production с разными настройками.

Несколько продуктов -- отдельные домены аутентификации для разных продуктов на одном экземпляре VoxKey.

White-label аутентификация -- каждый realm может иметь свой брендинг (логотип, цвета, тексты) на странице входа.

Создание Realm

  1. Откройте админ-панель: /admin
  2. Перейдите в Realms и нажмите Create
  3. Введите название realm
  4. VoxKey автоматически генерирует UUID, RSA-ключи и ключ шифрования
  5. Автоматически создается встроенный ресурс Management API со всеми CRUD-скоупами

Внешняя база данных

Каждый realm может использовать отдельную базу данных для хранения пользователей. Настройте db_host, db_name, db_username и db_password в параметрах realm для подключения к внешнему MariaDB/MySQL.

Настройки Realm

Realm-ы имеют гранулярные секции конфигурации:

  • Auth settings -- поведение регистрации/входа, время жизни сессий
  • MFA settings -- политики принуждения TOTP и WebAuthn
  • Security settings -- rate limits, CAPTCHA
  • Branding settings -- логотип, цвета, кастомный CSS
  • Profile settings -- обязательные поля пользователя, верификация email
  • Notification settings -- шаблоны писем и провайдеры уведомлений