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

JSON Web Token

Определение

JSON Web Token, или JWT, — компактный формат записи набора утверждений одной строкой, которую можно безопасно передать в URL, подписать или зашифровать. JWT задаёт только форму: назначение токена определяет профиль, по которому он выдан.

Также ищут: JWT · JSON-токен · токен с набором утверждений

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

Читаемый токен легко перепутать с проверенным. Разделите синтаксис, подпись, конфиденциальность и профиль назначения перед решением API.

Связи из словаря

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

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

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

  1. JWT передаёт набор утверждений в компактной форме, безопасной для URL, и может быть подписан или зашифрован средствами JOSE.

    Граница применимости: Формат JWT по RFC 7519.

  2. JWT — формат, а не назначение: токен доступа OAuth требует отдельного профиля, а ID Token OpenID Connect предназначен другому получателю.

    Граница применимости: Формат JWT, токен доступа OAuth и идентификационный токен OIDC.

  3. Читаемое содержимое подписанного JWT не становится секретным из-за Base64url. Подпись позволяет проверить целостность и происхождение в рамках выбранного профиля, а конфиденциальность требует отдельной защиты.

    Граница применимости: Редакторское различение кодирования, подписи и профиля токена доступа JWT; поддержка зашифрованных форматов не отрицается.

  4. Успешное декодирование JWT показывает лишь, что строку удалось разобрать. Без проверки подписи и остальных условий применимого профиля его поля не являются основанием разрешить запрос.

    Граница применимости: Редакторская граница синтаксиса JWT и приёма подписанного токена доступа по RFC 9068.

  5. Один издатель может подписать ID Token и токен доступа JWT. Правильная подпись не выбирает назначение: получатель проверяет ожидаемый тип, издателя, aud, срок и остальные условия своего профиля.

    Граница применимости: Редакторское сопоставление OIDC ID Token и токена доступа JWT. Один общий набор проверок для всех JWT не предлагается.

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

Не путать

JSON Web Token Непрозрачный токен

JWT имеет заданную структуру, непрозрачный токен не предполагает её разбора потребителем. Формат сам не сообщает, активно ли разрешение сейчас.

JSON Web Token ID Token

JWT — формат, ID Token — назначение в OIDC. Для ID Token действуют собственные правила получателя и связывания с запросом входа.

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

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

  1. Определите, какой профиль JWT ожидается.
  2. Отделите декодирование от проверки подписи.
  3. Проверьте доверенного издателя и допустимый профиль.
  4. Сверьте тип и получателя.
  5. Проверьте срок и остальные обязательные условия.
  6. Не считайте Base64url шифрованием.
  7. Не принимайте ID Token вместо токена доступа.
Открытые основания

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

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

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

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

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

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

  • Первичная спецификация
    OAuth 2.0 Token Introspection Internet Engineering Task Force · RFC 7662, October 2015 · проверено

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

Карта знаний

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

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

Курсы по теме

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