JWT имеет заданную структуру, непрозрачный токен не предполагает её разбора потребителем. Формат сам не сообщает, активно ли разрешение сейчас.
JSON Web Token
Определение
JSON Web Token, или JWT, — компактный формат записи набора утверждений одной строкой, которую можно безопасно передать в URL, подписать или зашифровать. JWT задаёт только форму: назначение токена определяет профиль, по которому он выдан.
Также ищут: JWT · JSON-токен · токен с набором утверждений
Зачем это знать
Читаемый токен легко перепутать с проверенным. Разделите синтаксис, подпись, конфиденциальность и профиль назначения перед решением API.
Карта понятия
Сравнить
Что подтверждено
JWT передаёт набор утверждений в компактной форме, безопасной для URL, и может быть подписан или зашифрован средствами JOSE.
Граница применимости: Формат JWT по RFC 7519.
JWT — формат, а не назначение: токен доступа OAuth требует отдельного профиля, а ID Token OpenID Connect предназначен другому получателю.
Граница применимости: Формат JWT, токен доступа OAuth и идентификационный токен OIDC.
Читаемое содержимое подписанного JWT не становится секретным из-за Base64url. Подпись позволяет проверить целостность и происхождение в рамках выбранного профиля, а конфиденциальность требует отдельной защиты.
Граница применимости: Редакторское различение кодирования, подписи и профиля токена доступа JWT; поддержка зашифрованных форматов не отрицается.
Успешное декодирование JWT показывает лишь, что строку удалось разобрать. Без проверки подписи и остальных условий применимого профиля его поля не являются основанием разрешить запрос.
Граница применимости: Редакторская граница синтаксиса JWT и приёма подписанного токена доступа по RFC 9068.
Один издатель может подписать ID Token и токен доступа JWT. Правильная подпись не выбирает назначение: получатель проверяет ожидаемый тип, издателя, aud, срок и остальные условия своего профиля.
Граница применимости: Редакторское сопоставление OIDC ID Token и токена доступа JWT. Один общий набор проверок для всех JWT не предлагается.
Не путать
JWT — формат, ID Token — назначение в OIDC. Для ID Token действуют собственные правила получателя и связывания с запросом входа.
Что проверить
- Определите, какой профиль JWT ожидается.
- Отделите декодирование от проверки подписи.
- Проверьте доверенного издателя и допустимый профиль.
- Сверьте тип и получателя.
- Проверьте срок и остальные обязательные условия.
- Не считайте Base64url шифрованием.
- Не принимайте ID Token вместо токена доступа.
Первоисточники
- JSON Web Token
Определяет compact JWT format и registered claims issuer, subject, audience, expiration, not-before, issued-at и JWT ID.
- JSON Web Token Profile for OAuth 2.0 Access Tokens
Профилирует JWT access token: at+jwt type, required iss/exp/aud и resource-server validation, отличая его от ID Token.
- OpenID Connect Core 1.0 incorporating errata set 2
Определяет identity layer поверх OAuth 2.0, openid scope, ID Token и правила его validation.
- OAuth 2.0 Token Introspection
Определяет защищённый запрос текущего active state и metadata OAuth token; описывает trade-off caching и liveness.