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
- Откройте админ-панель:
/admin - Перейдите в Realms и нажмите Create
- Введите название realm
- VoxKey автоматически генерирует UUID, RSA-ключи и ключ шифрования
- Автоматически создается встроенный ресурс 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 -- шаблоны писем и провайдеры уведомлений