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

Токен доступа

Определение

Токен доступа — учётные данные, которые клиент предъявляет ресурсному серверу, чтобы получить доступ к защищённому API. У токена есть конкретные полномочия, получатель и срок действия, но решение о доступе принимает сам API.

Также ищут: Access token · токен доступа OAuth · учётные данные для API

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

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

Наглядно

Как токен даёт доступ

Клиент получает токен и предъявляет его защищённому ресурсуСервер авторизациивыдаёт токенКлиенттокен → доступ к ресурсуСервер ресурсаПроверка полномочий и действия токена
Упрощённый поток OAuth 2.0 после авторизации. Токен может быть непрозрачным; формат JWT не обязателен. Сервер ресурса проверяет допустимость доступа. Источники схемы
Связи из словаря

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

Доказательная часть

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

  1. Токен доступа представляет разрешение с конкретными полномочиями, сроком и другими ограничениями и предъявляется ресурсному серверу.

    Граница применимости: Общее понятие токена доступа в OAuth 2.0.

  2. OAuth не задаёт единственный формат токена доступа: токен может быть непрозрачной строкой или JWT по отдельному профилю.

    Граница применимости: Токен доступа OAuth и отдельный профиль JWT.

  3. До приёма токена API определяет его назначение и профиль проверки. Для JWT по RFC 9068 проверяются подпись и обязательные условия профиля, включая тип, издателя, получателя и срок; затем применяются правила доступа к запрошенному ресурсу.

    Граница применимости: Редакторское соединение общего токена OAuth и конкретного профиля токена доступа JWT. Произвольному токену не приписываются поля этого профиля.

  4. Короткий срок действия ограничивает время использования, но не сужает уже выданные полномочия или получателей. В учебном примере действующий одну минуту токен с правом записи всё ещё допускает эту запись, если остальные проверки и правила API её разрешают.

    Граница применимости: Закрытый пример независимости времени, полномочий и целевого ресурса. Одна минута не является рекомендуемым сроком жизни всех токенов.

  5. Разбор токена клиентом не даёт ему права принять решение за API. Даже видимые поля JWT не заменяют проверку токена ресурсным сервером и его собственное решение о доступе.

    Граница применимости: Редакторская граница клиента и ресурсного сервера по OAuth и RFC 9068; видимое содержимое не считается доверенным само по себе.

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

Не путать

Токен доступа Токен обновления

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

Токен доступа ID Token

Токен доступа предназначен ресурсному серверу, ID Token даёт клиенту результат входа. Общий издатель и подпись не делают их взаимозаменяемыми.

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

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

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

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

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

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

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

  • Первичная спецификация
    Resource Indicators for OAuth 2.0 Internet Engineering Task Force · RFC 8707, February 2020 · проверено

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

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

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

Карта знаний

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

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

Курсы по теме

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