Skip to content

Клиенты 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

Внутренний ресурс компании