Приложения и доступ к API

Redirect URI

Определение

Redirect URI — заранее зарегистрированный адрес клиента, куда сервер авторизации возвращает ответ через браузер.

Также ищут: адрес возврата · URI перенаправления · обратный адрес OAuth

Зачем это знать

Ответ авторизации должен вернуться нужному клиенту. Точное сопоставление и запрет произвольного дальнейшего перенаправления проверяют отдельно от получателя токена API.

Связи из словаря

Карта понятия

Доказательная часть

Что подтверждено

  1. Клиент указывает Redirect URI для возврата ответа, а сервер авторизации сопоставляет его с зарегистрированным значением.

    Граница применимости: Маршрутизация ответа от конечной точки авторизации OAuth.

  2. RFC 9700 требует точного строкового сравнения Redirect URI с зарегистрированным адресом, с отдельным исключением для номера порта локального адреса возврата нативного приложения. Открытое перенаправление клиента не становится безопасным от совпадения исходного адреса.

    Граница применимости: Проверка адреса возврата по RFC 9700. Исключение для локального порта не разрешает шаблоны адресов, произвольные хосты или пути.

  3. В учебной конфигурации зарегистрирован один HTTPS-адрес с путём /cb. Адрес того же хоста с путём /cb-extra не совпадает с ним. Совпадение префикса строки не удовлетворяет точному сопоставлению.

    Граница применимости: Закрытая конфигурация с единственным зарегистрированным HTTPS-адресом и без исключения для локального порта нативного приложения.

  4. Если зарегистрированный обработчик сам перенаправляет ответ на произвольный внешний адрес, проверка его начального адреса не закрывает утечку. PKCE и запрет открытого перенаправления решают разные части защиты ответа авторизации.

    Граница применимости: Редакторское сопоставление точного адреса возврата и защиты обмена кода. Произвольный внешний получатель не легализуется регистрацией первого адреса.

  5. Адрес возврата указывает, куда доставить ответ авторизации клиенту. Он не является автоматически получателем токена доступа для API: маршрут ответа и ограничения будущего доступа — разные поля протокола.

    Граница применимости: Редакторское разделение Redirect URI из RFC 6749 и целевого ресурса по RFC 8707; равенство адресов возможно только как отдельная конфигурация.

Граница терминов

Не путать

Redirect URI Выдача по коду авторизации

Адрес возврата выбирает получателя ответа авторизации, выдача по коду затем требует отдельного обмена. Проверка адреса остаётся частью безопасности потока.

Redirect URI PKCE

Redirect URI ограничивает доставку ответа, PKCE связывает обмен кода с проверочным значением. Ни одна из этих проверок не отменяет другую.

Перед спецификацией

Что проверить

  1. Запишите зарегистрированный адрес возврата.
  2. Сверьте полный адрес применимым способом.
  3. Не подменяйте точное совпадение префиксом.
  4. Отдельно проверьте применимость исключения локального порта.
  5. Исключите открытое дальнейшее перенаправление.
  6. Не считайте PKCE заменой проверки адреса.
  7. Отделите адрес возврата от получателя токена API.
Открытые основания

Первоисточники

  • Стандарт4
  • Первичная спецификация
    The OAuth 2.0 Authorization Framework Internet Engineering Task Force · RFC 6749, October 2012 · проверено

    Определяет роли OAuth, authorization grants, access и refresh tokens, client types и основные grant flows.

    Утверждения: 01 · 03 · 05

  • Первичная спецификация
    Best Current Practice for OAuth 2.0 Security Internet Engineering Task Force · RFC 9700, January 2025 · проверено

    Актуализирует OAuth security: exact redirect matching, PKCE, sender-constrained tokens и безопасный refresh-token lifecycle.

    Утверждения: 02 · 03 · 04

  • Первичная спецификация
    Proof Key for Code Exchange by OAuth Public Clients Internet Engineering Task Force · RFC 7636, September 2015 · проверено

    Определяет code verifier и derived code challenge для привязки authorization code к начавшему flow client instance.

    Утверждения: 04

  • Первичная спецификация
    Resource Indicators for OAuth 2.0 Internet Engineering Task Force · RFC 8707, February 2020 · проверено

    Вводит resource parameter для target API и audience-restricted access tokens: scope отвечает что, resource — где.

    Утверждения: 05

Подтвердите действие