Выбор типа подключения
В Авторизе есть два типа подключений: Public и Confidential.
Выбор зависит от того, где выполняется авторизация и может ли приложение безопасно
хранить client_secret.
| Public | Confidential | |
|---|---|---|
| Где используется | Браузер, мобильное или desktop-приложение | Backend-сервер |
client_secret | Не используется | Хранится на сервере |
| PKCE | Используется | Может использоваться |
| Refresh token | Поддерживается | Поддерживается |
| Backend | Не требуется | Требуется |
Public Client
Используйте Public, если авторизация выполняется непосредственно в приложении
пользователя и у него нет backend-сервера, который участвует в OIDC-интеграции.
Это основной вариант для:
- SPA на React, Vue, Angular и других фреймворках;
- обычных JavaScript / TypeScript веб-приложений;
- мобильных приложений;
- desktop-приложений.
client_secret в этом случае не используется, поскольку приложение не может безопасно
хранить секрет на устройстве пользователя.
Для браузерных приложений рекомендуется использовать SDK для фронтенда.
Как это работает
Приложение использует Authorization Code Flow с PKCE:
- пользователь переходит на страницу авторизации Авторизы;
- проходит авторизацию;
- приложение получает authorization code;
- код обменивается на токены;
- приложение использует access token для обращения к API.
При необходимости может использоваться refresh token для обновления access token.
Refresh token в браузерном приложении требует дополнительного внимания к безопасности хранения. SDK берет работу с сессией и обновлением токенов на себя.
Confidential Client
Используйте Confidential, если у вас есть backend-сервер, который участвует в
OIDC-интеграции и может безопасно хранить секреты.
Это подходит для:
- SaaS-приложений;
- CRM и ERP;
- серверных веб-приложений;
- приложений с backend-сессиями;
- других систем, где авторизация выполняется на сервере.
Как это работает
- браузер перенаправляется на Авторизу;
- пользователь проходит авторизацию;
- backend получает authorization code;
- backend обменивает код на токены;
client_secretи refresh token хранятся на сервере;- backend управляет сессией пользователя.
Главное отличие
client_secret никогда не должен попадать в браузер или другой клиент пользователя.
Как выбрать
Выбирайте Public, если:
- у вас SPA или другое frontend-приложение;
- backend не участвует в OIDC-интеграции;
- приложение работает непосредственно в браузере пользователя.
Выбирайте Confidential, если:
- у вас есть backend;
- backend выполняет обмен authorization code на токены;
- вам необходимо безопасно хранить
client_secretи управлять серверной сессией.
Если вы делаете обычное frontend-приложение на JavaScript / TypeScript, выбирайте Public Client и используйте SDK для фронтенда для быстрой интеграции.