Первый вход пользователя
Первый вход пользователя начинается в вашем приложении.
Обычно это кнопка: Войти или Войти через Авторизу
Запуск процесса аутентификации
После нажатия кнопки приложение инициирует стандартный OAuth 2.0 / OpenID Connect поток.
1. Перенаправление пользователя в Авторизу
Приложение перенаправляет пользователя в Авторизу с параметрами:
client_idredirect_uriscoperesponse_type
Пример (JavaScript):
window.location.href = 'https://oidc.authoriza.ru/oidc/auth?client_id={{client_id}}&response_type=code&redirect_uri= ... ';
2. Аутентификация в Авторизе
После перенаправления:
- пользователь вводит учетные данные;
- при необходимости проходит регистрацию;
- Авториза создает учетную запись (если она отсутствует);
- создается профиль пользователя в рамках проекта.
3. Возврат в приложение
После завершения входа Авториза перенаправляет пользователя обратно, в приложение, по указанному
на первом шаге REDIRECT URI, добавив GET-параметры code, state, и iss для продолжения
аутентификации:
https://app.example.com/callback?code=abc123&state=...
Что такое code
code — это временный одноразовый код авторизации.
Он не содержит пользовательских данных и не является токеном доступа.
Его задача — безопасно передать факт успешного входа от Авторизы к приложению.
Почему не сразу токены
Передача токенов напрямую через URL небезопасна:
- токены могут попасть в браузерную историю;
- могут быть перехвачены в логах или прокси;
- сложнее контролировать срок жизни и выдачу.
Поэтому используется двухшаговая схема:
- Авториза возвращает
code - Приложение обменивает
codeна токены через Token Endpoint
Что такое state и iss
iss - Это ISSUER, данный провайдер аутентификации.
state - это сформированный и отправленный на первом шаге код. По нему, а также сверяя iss,
получатель удостоверяется, что внутри цепочки не произошло подмены или сбоя аутентификации.
Больше информации об особенностях и защитных механизмах протокола OIDC (OpenId Connect) можно в соответствующих разделах.
4. Обработка результата в приложении
После возврата на Redirect URI приложение:
- Проверяет наличие
error - ПРоверяет подлинность ответа через
stateиiss - Если есть
code— выполняет обмен на токены - Получает:
- ID Token
- Access Token
- Refresh Token (если запрошен
offline_access)
- Создает пользовательскую сессию, при необходимости хранения дополнительных данных,
отсутствующих в
id_tokenиaccess_token
Роль Авторизы в процессе
Авториза берет на себя всю сложную часть управления идентификацией:
- хранение пользователей;
- регистрация и вход;
- безопасность паролей;
- создание профилей в проектах;
- выпуск токенов и управление ими;
- поддержку SSO внутри проекта.
Приложение при этом получает:
- стандартизированный способ входа;
- безопасный результат аутентификации;
- готовые токены для работы с API.
Где смотреть дальше
- Обработка Redirect URI
- Получение токенов
- Токены
- OpenID Connect