Выбор типа приложения

В 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.

Авториза

© 2026 ИП Калинин Александр Викторович
Россия, Новосибирск