SYSTEM ATLASЗагрузка материала

PKCE для OAuth 2.0

OAuth 2.0 PKCE

PKCE связывает код авторизации с одноразовым секретом клиента и мешает обменять перехваченный код без verifier.

Простыми словами

Например, мобильное приложение запускает вход в системном браузере; перехвативший callback код не сможет получить токен без verifier. Поэтому правило проверяют ещё на этапе проектирования - иначе одна удобная лазейка может превратиться в доступ, которого у пользователя или процесса быть не должно.

Пример от @Vibeclakr

Пример при разработке

Мобильное приложение запускает вход в системном браузере; перехвативший callback код не сможет получить токен без verifier.

Это редакционный пример применения, а не часть определения или доказательство концепции.

Формальное определение

PKCE связывает код авторизации с одноразовым секретом клиента и мешает обменять перехваченный код без verifier.

Механизм действия

Клиент создаёт code_verifier, отправляет code_challenge, а token endpoint проверяет их соответствие.

Пример в работе

Нерабочий подход

Внедрить «PKCE для OAuth 2.0» как формальную настройку, не проверив сценарий отказа и ограничение: PKCE не заменяет проверку redirect URI, state/nonce и защиту самого устройства.

Системный подход

Применять «PKCE для OAuth 2.0» только для заявленной цели, проверять поведение на реальном контуре и сохранять наблюдаемый критерий результата.

Ограничения

PKCE не заменяет проверку redirect URI, state/nonce и защиту самого устройства.

Источник

IETF, “Proof Key for Code Exchange by OAuth Public Clients”, 2015.

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