Menu
Выбор типа приложения
В Authoriza есть два типа клиентских приложений: Public и Confidential.
Выбор влияет на безопасность, хранение секретов и работу с токенами.
1. Public Client
Используйте, если у вас frontend-приложение без backend-аутентификации (SPA, мобильное/десктопное/нативное). Это правильный выбор, если приложение не способно безопасно хранить "секреты" (refresh_token и client_secret), не отправляя их на устройство конечного пользователя.
Как это работает
- пользователь логинится через Authoriza
- приложение получает:
- access token
- id token
- access token живёт ограниченное время
Важное отличие
- client_secret не используется и не существует в этом режиме
- приложение считается публичным и не может безопасно хранить секреты
Обновление сессии
- повторная авторизация через стандартный OIDC flow
- silent re-auth не поддерживается по современным стандартам
- если приложение не использует передачу токена куда-либо, и использует только id_token для получения профиля пользователя, полученный профиль оно может хранить произвольное время по усмотрению разработчика, независимо от времени жизни токена.
- Если для приложения имеет значение актуальность токена или данных в нем - нужно перенаправлять пользователя на повторную аутентификацию. В стандартном сценарии для пользователя это сведется к однократному нажатию кнопки для подтверждения сессии.
- Для большего удобства можно будет управлять временем жизни токена в Кабинете Разработчика. (Может быть недоступно на бесплатном тарифе)
Ограничения
- нельзя безопасно хранить refresh token в браузере
- нет гарантии долгих сессий
- возможны повторные логины пользователя
Подходит для
- SPA (React, Vue, Angular)
- нативные приложения (мобильные и десктопные)
- MVP и публичные веб-приложения
- приложения без backend-сессии
2. Confidential Client
Используйте, если у вас есть backend-сервер, который может безопасно хранить секреты и управлять сессией.
Как это работает
- backend получает authorization code
- backend обменивает code на токены через token endpoint
- backend хранит refresh token
- backend обновляет access token автоматически через refresh token
Важное отличие
- используется client_secret
- он хранится только на сервере (backend)
- браузер его никогда не видит
Обновление сессии
- стандартный refresh token flow (OIDC)
Ограничения
- требуется backend
- более сложная архитектура
Подходит для
- SaaS-продуктов
- CRM / ERP систем
- приложений с долгими сессиями
- систем с требованиями к безопасности
Итог
Public client:
- ограниченные сессии
- без refresh token flow
- без client_secret
- без безопасного хранения секретов
Confidential client:
- использует client_secret
- поддерживает refresh_token
- предназначен для серверной логики
Если у вас нет backend-а — выбирайте Public.
Если нужен контроль сессий и автоматическое обновление токенов —
используйте Confidential.