Appearance
Клиенты Keycloak (Realm a-ceramica)
Краткое описание
На этой странице описаны клиенты, настроенные в Keycloak для разных частей системы. Каждый клиент используется для конкретной задачи — авторизации пользователей, проверки токенов или внутренних административных действий.
nuxt-auth
Для чего нужен
Этот клиент используется фронтендом партнёрского кабинета — с его помощью пользователи могут входить в систему и регистрироваться прямо через интерфейс сайта, без редиректов на Keycloak
Тип клиента
Публичный — не требует хранения секрета на фронтенде
Как работает
Позволяет отправлять логин и пароль напрямую из формы на сайте и получать токен доступа (через так называемый "прямой доступ")
Безопасность
- Поддерживает logout с фронтенда
- Требует правильной настройки CORS и разрешённых источников (
webOriginsиredirectUris— сейчас указаны как/*, но рекомендуется ограничить в production конкретными URL)
fastapi-backend
Для чего нужен
Этот клиент используется бекендом FastAPI для проверки действительности токенов, полученных от фронтенда. Он не выполняет логин сам по себе, а только валидирует уже выданные токены
Тип клиента
Публичный
Как работает
Не предназначен для входа — через него нельзя залогиниться. Он просто принимает токены от других клиентов и проверяет их подлинность
Безопасность
- Настроен только на проверку, без получения токенов
- Работает в режиме "только проверка" (bearer-only)
fastapi-admin
Для чего нужен
Используется для внутренних операций на бэкенде — например, для создания пользователей, назначения ролей, управления данными. Через него админка может выполнять запросы от имени самой системы, без участия пользователя
Тип клиента
Конфиденциальный — требует хранения секрета в .env
Как работает
Поддерживает авторизацию от имени клиента. Это позволяет использовать так называемые "сервисные аккаунты" — когда логинится не человек, а сама программа. Это нужно, например, чтобы backend мог создать нового пользователя в Keycloak или выдать ему роль
Общие моменты
- Все клиенты работают через
OpenID Connect - У каждого клиента настроены доступы к основным данным пользователя:
email,phone,role,firstName,lastNameи т.д. - Сейчас в
webOriginsиredirectUrisуказаны/*, но в будущем дляproductionстоит ограничить их до конкретных URL