Адрес возврата выбирает получателя ответа авторизации, выдача по коду затем требует отдельного обмена. Проверка адреса остаётся частью безопасности потока.
Redirect URI
Определение
Redirect URI — заранее зарегистрированный адрес клиента, куда сервер авторизации возвращает ответ через браузер.
Также ищут: адрес возврата · URI перенаправления · обратный адрес OAuth
Зачем это знать
Ответ авторизации должен вернуться нужному клиенту. Точное сопоставление и запрет произвольного дальнейшего перенаправления проверяют отдельно от получателя токена API.
Карта понятия
Что подтверждено
Клиент указывает Redirect URI для возврата ответа, а сервер авторизации сопоставляет его с зарегистрированным значением.
Граница применимости: Маршрутизация ответа от конечной точки авторизации OAuth.
RFC 9700 требует точного строкового сравнения Redirect URI с зарегистрированным адресом, с отдельным исключением для номера порта локального адреса возврата нативного приложения. Открытое перенаправление клиента не становится безопасным от совпадения исходного адреса.
Граница применимости: Проверка адреса возврата по RFC 9700. Исключение для локального порта не разрешает шаблоны адресов, произвольные хосты или пути.
В учебной конфигурации зарегистрирован один HTTPS-адрес с путём /cb. Адрес того же хоста с путём /cb-extra не совпадает с ним. Совпадение префикса строки не удовлетворяет точному сопоставлению.
Граница применимости: Закрытая конфигурация с единственным зарегистрированным HTTPS-адресом и без исключения для локального порта нативного приложения.
Если зарегистрированный обработчик сам перенаправляет ответ на произвольный внешний адрес, проверка его начального адреса не закрывает утечку. PKCE и запрет открытого перенаправления решают разные части защиты ответа авторизации.
Граница применимости: Редакторское сопоставление точного адреса возврата и защиты обмена кода. Произвольный внешний получатель не легализуется регистрацией первого адреса.
Адрес возврата указывает, куда доставить ответ авторизации клиенту. Он не является автоматически получателем токена доступа для API: маршрут ответа и ограничения будущего доступа — разные поля протокола.
Граница применимости: Редакторское разделение Redirect URI из RFC 6749 и целевого ресурса по RFC 8707; равенство адресов возможно только как отдельная конфигурация.
Не путать
Redirect URI ограничивает доставку ответа, PKCE связывает обмен кода с проверочным значением. Ни одна из этих проверок не отменяет другую.
Что проверить
- Запишите зарегистрированный адрес возврата.
- Сверьте полный адрес применимым способом.
- Не подменяйте точное совпадение префиксом.
- Отдельно проверьте применимость исключения локального порта.
- Исключите открытое дальнейшее перенаправление.
- Не считайте PKCE заменой проверки адреса.
- Отделите адрес возврата от получателя токена API.
Первоисточники
- The OAuth 2.0 Authorization Framework
Определяет роли OAuth, authorization grants, access и refresh tokens, client types и основные grant flows.
- Best Current Practice for OAuth 2.0 Security
Актуализирует OAuth security: exact redirect matching, PKCE, sender-constrained tokens и безопасный refresh-token lifecycle.
- Proof Key for Code Exchange by OAuth Public Clients
Определяет code verifier и derived code challenge для привязки authorization code к начавшему flow client instance.
Утверждения: 04
- Resource Indicators for OAuth 2.0
Вводит resource parameter для target API и audience-restricted access tokens: scope отвечает что, resource — где.
Утверждения: 05