Аутентификация
VoxKey поддерживает несколько методов аутентификации для каждого realm. Каждый метод добавляется как Провайдер и может быть включен или отключен независимо.
Методы аутентификации
Email / Пароль
Провайдер LoginPass обеспечивает классическую аутентификацию по email и паролю.
- Хеширование паролей через bcrypt
- Верификация email через одноразовые коды
- Восстановление пароля
- Защита CAPTCHA (настраивается для каждого realm)
Социальный вход (OAuth2)
Подключение внешних провайдеров идентификации. Пользователь нажимает кнопку и авторизуется через экран согласия провайдера.
| Провайдер | Протокол | Возвращаемые данные |
|---|---|---|
| OAuth2 | email, имя, аватар | |
| GitHub | OAuth2 | email, имя, аватар |
| Discord | OAuth2 | email, имя, аватар |
| Yandex | OAuth2 | email, имя, аватар |
| Steam | OpenID | Steam ID, имя |
Формат callback URL для OAuth2-провайдеров:
https://your-domain.com/oauth2/{realmUUID}/login/{providerName}
WebAuthn / Passkeys
Беспарольная аутентификация через платформенные аутентификаторы (Touch ID, Face ID, Windows Hello) или аппаратные ключи (YubiKey).
- Регистрация и вход через WebAuthn API
- Может использоваться как основной метод или как фактор MFA
- Предложение регистрации passkey после первого входа (настраивается)
Email-коды
Одноразовые коды, отправляемые на email. Используются для:
- Беспарольного входа
- Верификации email при регистрации
- MFA-вызова
Многофакторная аутентификация (MFA)
MFA добавляет второй этап проверки после основной аутентификации.
Поддерживаемые факторы:
- TOTP -- одноразовые пароли на основе времени (Google Authenticator, Authy)
- WebAuthn -- passkeys и аппаратные ключи безопасности
Политики MFA для realm:
- Disabled -- MFA отключена
- Optional -- пользователи могут включить MFA в личном кабинете
- Required -- все пользователи обязаны подключить MFA
- Skippable -- предложение подключить MFA с возможностью пропуска
Процесс входа
Управление сессиями
VoxKey отслеживает сессии в каждом realm через подписанную cookie rid. Пользователи могут:
- Просматривать активные сессии в личном кабинете
- Завершать сессии на других устройствах
- Видеть историю входов с IP и user agent
Добавление провайдера в realm
- Перейдите в Админ-панель > Realms > [Ваш Realm] > Auth Providers
- Нажмите Add Provider
- Выберите тип провайдера и настройте учетные данные
- Установите разрешения: Allow Sign Up, Allow Sign In, Allow Unlink