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

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

Определение

Выдача по коду авторизации — способ выдачи токенов в OAuth, при котором клиент сначала получает через браузер короткий одноразовый код, а затем обменивает его на токен доступа.

Также ищут: Authorization code grant · authorization code flow · поток кода авторизации

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

Короткий одноразовый код отделяет возврат через браузер от выдачи токена. При проверке нужно сохранить связь с клиентом, адресом возврата и значением PKCE.

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

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

Выдача по коду авторизации
Доказательная часть

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

  1. Код авторизации сначала возвращается клиенту через браузер, а затем обменивается на токен доступа у сервера авторизации.

    Граница применимости: Выдача по коду авторизации в OAuth 2.0.

  2. RFC 9700 требует применять PKCE при выдаче по коду для публичных клиентов и рекомендует его конфиденциальным клиентам. Сервер авторизации проверяет исходное значение PKCE при защищённом им обмене кода.

    Граница применимости: Раздел 2.1.1 RFC 9700, январь 2025 года. Нормативные уровни для публичного и конфиденциального клиента различаются; рекомендация не выдаётся за одинаковое требование ко всем.

  3. Код авторизации должен иметь короткий срок действия и не использоваться более одного раза. Сервер авторизации отклоняет повторное использование; сам код предназначен для обмена на токен, а не для вызова API.

    Граница применимости: Выдача и повтор кода по RFC 6749, разделы 4.1.2 и 4.1.3. Универсальный числовой срок жизни кода не назначается.

  4. Код авторизации связан с идентификатором клиента и адресом возврата. При обмене сервер проверяет эту связь; если Redirect URI был передан в исходном запросе, значение при обмене должно быть тем же.

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

  5. PKCE связывает обмен кода с исходным проверочным значением. Конфиденциальный клиент при этом продолжает подтверждать свою подлинность применимым способом; знание проверочного значения не заменяет все остальные проверки клиента и запроса.

    Граница применимости: Редакторское сопоставление PKCE и аутентификации клиента в точке обмена кода; конкретный метод аутентификации задаёт профиль.

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

Не путать

Выдача по коду авторизации Основание для авторизации

Код — конкретное основание для выдачи токена. Общее понятие основания не делает все способы выдачи одинаково допустимыми по RFC 9700.

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

Код передаётся клиенту для обмена, PKCE связывает этот обмен с исходным проверочным значением. Одноразовость кода и его привязка решают разные проверки.

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

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

  1. Разделите возврат кода и запрос токена.
  2. Укажите короткий срок действия кода.
  3. Проверьте запрет повторного использования.
  4. Свяжите код с клиентом и адресом возврата.
  5. Проверьте PKCE для выбранного типа клиента.
  6. Сохраните отдельную аутентификацию конфиденциального клиента.
  7. Не отправляйте код авторизации прикладному API.
Открытые основания

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

  • Стандарт3
  • Первичная спецификация
    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 · 04 · 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

  • Первичная спецификация
    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.

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

Карта знаний

Связанные понятия

Из знания — в навык

Курсы по теме

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