Scope задаёт действия, resource — целевой ресурс. Одинаковое имя read у двух API не отменяет ограничения на получателя.
Область полномочий OAuth
Определение
Область полномочий OAuth (scope) — набор строк, которыми клиент запрашивает нужные действия, а сервер авторизации объявляет, какой доступ он выдал. Выдать могут меньше запрошенного, и API проверяет именно выданный набор.
Также ищут: OAuth scope · scope · область доступа OAuth
Зачем это знать
Клиент обязан учитывать выданный набор, а API — проверять его применимость к запросу. Одинаковое имя действия у двух API не делает токены общими.
Карта понятия
Что подтверждено
Клиент выражает запрошенный доступ через scope, а сервер авторизации может выдать такой же или более узкий набор полномочий.
Граница применимости: Обработка scope в OAuth 2.0.
Scope описывает требуемые полномочия, а указатель ресурса и итоговый получатель ограничивают API, для которого предназначен токен.
Граница применимости: Область полномочий OAuth и целевой ресурс.
В учебном запросе клиент просил чтение и запись, но сервер выдал только чтение. Клиент не может считать запись разрешённой по своему исходному запросу; API проверяет фактически выданные полномочия.
Граница применимости: Закрытый пример более узкого выданного scope; остальные проверки токена и объекта остаются обязательными.
Имена полномочий scope задаёт сервер авторизации. Они чувствительны к регистру и передаются как строки, разделённые пробелами; порядок значений не меняет их смысл.
Граница применимости: Синтаксис scope по RFC 6749, раздел 3.3. Универсальные значения вроде read или admin стандартом не назначаются.
Если два API используют одинаковое имя полномочия read, оно не делает токен пригодным для обоих. Целевой ресурс и получатель проверяются отдельно от имени действия.
Граница применимости: Редакторское применение scope и resource indicators к двум API; read — условное имя в данном примере.
Не путать
Scope описывает полномочия токена, ресурсный сервер проверяет их вместе с объектом и контекстом. Наличие строки scope не выполняет эту проверку за API.
Что проверить
- Прочитайте имена полномочий сервера.
- Сохраните регистр значений.
- Разделите запрошенный и выданный наборы.
- Проверьте фактически выданный scope.
- Сверьте целевой ресурс и получателя.
- Примените правила к объекту.
- Не выводите выданное право из текста своего запроса.
Первоисточники
- Resource Indicators for OAuth 2.0
Вводит resource parameter для target API и audience-restricted access tokens: scope отвечает что, resource — где.
- The OAuth 2.0 Authorization Framework: Bearer Token Usage
Определяет bearer-token presentation, защиту от disclosure, Authorization header и ошибки invalid_token/insufficient_scope.
Утверждения: 03
- Guidelines for API Protection for Cloud-Native Systems
Задаёт API lifecycle controls для authentication, authorization, rate limits, resource limits, logging и monitoring.