Практикум по управлению доступом к API

Доступ к API без путаницы: OAuth, OpenID Connect и токены

Курс показывает весь путь запроса к API: от приложения и основания для выдачи доступа до токена, проверки получателя и полномочий, отзыва, ограничения частоты и аудита. Отдельно разобраны OAuth, OpenID Connect, ID Token, ключ API, токен на предъявителя и токен с подтверждением владения.

База → разработка44 минут4 модуля5 вопросов
После курса

Что вы сможете сделать

  1. Отличать делегирование доступа по OAuth, вход по OpenID Connect и собственные правила доступа API.
  2. Различать участников OAuth, основания для выдачи доступа и типы приложений, не смешивая пользователя с приложением.
  3. Проверять тип токена, издателя, получателя, срок действия и полномочия как единый набор условий.
  4. Организовать отзыв токенов, ограничение частоты запросов и аудит без записи секретов.
Модуль 1 из 4

Уровень 1. Кто просит доступ и кто его выдаёт

OAuth — не экран входа, а протокол делегирования доступа с четырьмя ролями. Сначала определите, какие стороны исполняют роли клиента, сервера авторизации, ресурсного сервера и владельца ресурса.

  • Клиент OAuth просит ограниченный доступ, сервер авторизации выдаёт токен, а ресурсный сервер защищает API. Роли клиента и владельца ресурса различаются, но одна сторона может исполнять обе.

  • Основание для авторизации позволяет выпустить токен. При выдаче по коду браузер возвращает короткий код авторизации, который клиент отдельно обменивает на сервере авторизации.

  • Redirect URI сверяют точно, а PKCE связывает код авторизации с проверочным значением конкретного экземпляра клиента. PKCE не подтверждает личность пользователя и не исправляет открытое перенаправление.

  • Публичный клиент не способен надёжно хранить общий секрет; конфиденциальный клиент может подтвердить свою подлинность. Выдача по учётным данным клиента представляет службу, а не конечного пользователя.

Модуль 2 из 4

Уровень 2. Какие токены хранит клиент

Токен доступа и токен обновления предназначены разным получателям. Затем выберите токен на предъявителя или привязку к отправителю и задайте реальный срок действия.

  • Токен доступа предъявляют ресурсному серверу, а токен обновления — только серверу авторизации для получения нового токена доступа. Ни один из них не равен исходному основанию для выдачи доступа.

  • Токен на предъявителя может использовать любой, кто им завладел. Поэтому его защищают как секрет и не помещают в URL или журналы.

  • Токен с подтверждением владения требует связанный ключ. DPoP добавляет подписанное подтверждение к HTTP-запросу, а OAuth mTLS связывает токен с сертификатом клиента.

  • Токен обновления публичного клиента защищают ротацией или привязкой к отправителю. Ни короткий срок действия, ни mTLS не исправляют чрезмерные полномочия.

Модуль 3 из 4

Уровень 3. Что разрешено и кому предназначен токен

Область полномочий отвечает за разрешённые действия, а ресурс и получатель — за целевой API. Формат токена и его назначение проверяют отдельно.

  • Параметр scope описывает запрошенные действия, указатель ресурса выбирает целевой API, а поле audience позволяет ресурсному серверу отвергнуть токен для другого получателя.

  • Непрозрачный токен не разбирают на стороне клиента; ресурсный сервер может узнать его текущее состояние через защищённую точку интроспекции.

  • Отзыв досрочно прекращает действие токена или связанного разрешения, но охват отзыва и скорость его применения зависят от правил сервера и кэшей.

  • JWT — формат утверждений. OpenID Connect добавляет вход пользователя поверх OAuth, а ID Token предназначен клиенту; API нужен токен доступа с подходящим профилем.

Модуль 4 из 4

Уровень 4. Защитить API и сохранить след проверки

Предъявление учётных данных только начинает проверку. API отдельно применяет правила доступа, ограничения нагрузки и безопасный аудит.

  • Ключ API часто идентифицирует вызывающее приложение и действует как секрет, но не заменяет личность пользователя или проверку доступа к конкретному объекту.

  • Ограничение частоты сдерживает число запросов за короткий интервал и защищает вычислительные ресурсы. Оно не выдаёт полномочий и отличается от долгосрочной квоты.

  • Ресурсный сервер проверяет все условия применения токена и сохраняет результаты разрешённых и отклонённых запросов, а не только итоговый код HTTP.

  • Аудит связывает клиента, субъект, конечную точку, принятое решение, результат и идентификатор запроса, но не копирует сам токен на предъявителя или ключ API.

Финишная прямая

Проверьте инженерное мышление

Вопросы проверяют не память на аббревиатуры, а умение не делать лишних выводов.

01Приложение получило токен доступа OAuth. Доказывает ли это само по себе, как был аутентифицирован пользователь?
02API получил правильно подписанный JWT, но поле aud указывает соседнюю службу. Что делать?
03Клиентская часть получила ID Token после входа через OpenID Connect. Какие учётные данные отправить прикладному API?
04Что именно доказывает PKCE при обмене кода авторизации?
05Клиент не превысил ограничение частоты запросов. Значит ли это, что ему разрешено читать запрошенный объект?
Проверяемая база

Источники курса

Ссылки приведены один раз для всего курса, чтобы не мешать чтению каждого тезиса.

  • Первичная спецификация

    The OAuth 2.0 Authorization Framework

    Internet Engineering Task Force · RFC 6749, October 2012

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

    Открыть первоисточник
  • Первичная спецификация

    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.

    Открыть первоисточник
  • Первичная спецификация

    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.

    Открыть первоисточник
  • Первичная спецификация

    OpenID Connect Core 1.0 incorporating errata set 2

    OpenID Foundation · OpenID Connect Core 1.0, Final

    Определяет identity layer поверх OAuth 2.0, openid scope, ID Token и правила его validation.

    Открыть первоисточник
  • Первичная спецификация

    The OAuth 2.0 Authorization Framework: Bearer Token Usage

    Internet Engineering Task Force · RFC 6750, October 2012

    Определяет bearer-token presentation, защиту от disclosure, Authorization header и ошибки invalid_token/insufficient_scope.

    Открыть первоисточник
  • Первичная спецификация

    OAuth 2.0 Demonstrating Proof of Possession

    Internet Engineering Task Force · RFC 9449, September 2023

    Определяет application-layer proof-of-possession и sender-constrained tokens с защитой от replay.

    Открыть первоисточник
  • Первичная спецификация

    OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens

    Internet Engineering Task Force · RFC 8705, February 2020

    Определяет OAuth client authentication через mutual TLS и certificate-bound access/refresh tokens.

    Открыть первоисточник
  • Первичная спецификация

    JSON Web Token Profile for OAuth 2.0 Access Tokens

    Internet Engineering Task Force · RFC 9068, October 2021

    Профилирует JWT access token: at+jwt type, required iss/exp/aud и resource-server validation, отличая его от ID Token.

    Открыть первоисточник
  • Первичная спецификация

    Resource Indicators for OAuth 2.0

    Internet Engineering Task Force · RFC 8707, February 2020

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

    Открыть первоисточник
  • Первичная спецификация

    OAuth 2.0 Token Introspection

    Internet Engineering Task Force · RFC 7662, October 2015

    Определяет защищённый запрос текущего active state и metadata OAuth token; описывает trade-off caching и liveness.

    Открыть первоисточник
  • Первичная спецификация

    OAuth 2.0 Token Revocation

    Internet Engineering Task Force · RFC 7009, August 2013

    Определяет HTTPS revocation endpoint, обязательную поддержку revocation refresh token и возможную cascade policy.

    Открыть первоисточник
  • Первичная спецификация

    JSON Web Token

    Internet Engineering Task Force · RFC 7519, May 2015

    Определяет compact JWT format и registered claims issuer, subject, audience, expiration, not-before, issued-at и JWT ID.

    Открыть первоисточник
  • Первичная спецификация

    OpenAPI Specification v3.1.1

    OpenAPI Initiative · OpenAPI Specification 3.1.1, 24 October 2024

    Определяет API security schemes, включая apiKey в header/cookie/query, mutualTLS, OAuth 2.0 и OpenID Connect.

    Открыть первоисточник
  • Первичная спецификация

    Guidelines for API Protection for Cloud-Native Systems

    National Institute of Standards and Technology · NIST SP 800-228-upd1, includes updates as of 13 March 2026

    Задаёт API lifecycle controls для authentication, authorization, rate limits, resource limits, logging и monitoring.

    Открыть первоисточник
  • Первичная спецификация

    Security and Privacy Controls for Information Systems and Organizations

    National Institute of Standards and Technology · NIST SP 800-53 Rev. 5, Release 5.2.0

    Содержит controls для authorization, least privilege, separation of duties, privileged functions и protection of audit information.

    Открыть первоисточник
  • Официальная документация

    Best practices for managing API keys

    Google Cloud · Google Cloud documentation, checked 30 August 2026

    Рекомендует ограничивать keys, хранить вне code и query parameters, регулярно rotate и удалять ненужные keys.

    Открыть первоисточник
Сообщить об ошибке

Опишите проблему — постараемся исправить как можно скорее.

Спасибо!

Получили ваше сообщение.
Подтвердите действие