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

Быстрый старт

Настройте аутентификацию за 5 минут.

1. Создайте Realm

Откройте админ-панель и создайте новый realm:

https://your-domain.com/admin

Перейдите в Realms > Create. Задайте имя (например "My App"). VoxKey автоматически генерирует UUID, RSA-ключи и Management API.

Запомните Realm UUID -- он нужен для всех эндпоинтов.

2. Добавьте провайдер аутентификации

Перейдите на вкладку Auth Providers вашего realm и добавьте хотя бы один провайдер:

  • LoginPass -- для аутентификации по email/паролю
  • Google / GitHub / Discord -- для социального входа (нужны OAuth2-креденшелы из консоли разработчика провайдера)

3. Зарегистрируйте приложение

Перейдите в Applications > Create и выберите тип:

ТипКогда использоватьPKCE
Traditional WebСерверные приложения (Laravel, Rails, Django)Опционально
SPAReact, Vue, Angular приложенияОбязательно
M2MБэкенд-сервисы, cron-задачиНе применимо

Добавьте redirect URI (например http://localhost:3000/callback).

Сохраните Client ID и Client Secret (для конфиденциальных клиентов).

4. Получите OIDC-эндпоинты

Запросите OpenID Connect discovery document:

curl https://your-domain.com/oauth2/{realmUUID}/.well-known/openid-configuration

Ответ содержит все эндпоинты:

{
"authorization_endpoint": "/oauth2/{realmUUID}/code",
"token_endpoint": "/oauth2/{realmUUID}/token",
"userinfo_endpoint": "/oauth2/{realmUUID}/userinfo",
"jwks_uri": "/oauth2/{realmUUID}/oidc/jwks",
"introspection_endpoint": "/oauth2/{realmUUID}/introspect",
"revocation_endpoint": "/oauth2/{realmUUID}/revoke"
}

5. Протестируйте процесс входа

Начало авторизации

Перенаправьте пользователя на эндпоинт авторизации:

https://your-domain.com/oauth2/{realmUUID}/code
?response_type=code
&client_id=YOUR_CLIENT_ID
&redirect_uri=http://localhost:3000/callback
&scope=openid profile email
&state=random_state_value
&code_challenge=PKCE_CHALLENGE
&code_challenge_method=S256

Пользователь проходит аутентификацию и возвращается с authorization code.

Обмен кода на токены

curl -X POST https://your-domain.com/oauth2/{realmUUID}/token \
-d grant_type=authorization_code \
-d code=AUTHORIZATION_CODE \
-d redirect_uri=http://localhost:3000/callback \
-d client_id=YOUR_CLIENT_ID \
-d client_secret=YOUR_SECRET \
-d code_verifier=PKCE_VERIFIER

Ответ:

{
"access_token": "eyJ...",
"token_type": "Bearer",
"expires_in": 3600,
"refresh_token": "def50...",
"id_token": "eyJ..."
}

Получение информации о пользователе

curl https://your-domain.com/oauth2/{realmUUID}/userinfo \
-H "Authorization: Bearer ACCESS_TOKEN"

Что дальше

  • Защита API с валидацией JWT
  • Настройка RBAC с кастомными ролями и скоупами
  • Настройка MFA для realm