Почему это важно
Встроенный секрет можно извлечь, поэтому защита строится на PKCE, точном Redirect URI, ограниченных токенах и других проверяемых мерах.
Что подтверждено
Публичный клиент не способен сохранить свои общие учётные данные в тайне, например когда код выполняется на устройстве владельца ресурса.
Граница применимости: Типы клиентов OAuth 2.0.
PKCE защищает каждый обмен кода авторизации новым случайным значением, но не превращает встроенный общий секрет в защищённые учётные данные.
Граница применимости: Защита выдачи по коду для публичного клиента.
Что проверить
- Не встраивайте общий секрет.
- Включите PKCE.
- Ограничьте токены и допустимые Redirect URI.
Первоисточники
The OAuth 2.0 Authorization Framework
Internet Engineering Task Force · RFC 6749, October 2012
Определяет роли OAuth, authorization grants, access и refresh tokens, client types и основные grant flows.
Открыть первоисточник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.
Открыть первоисточник