VersolaVersola/docs
versola.kzGitHub

RFC 7519 — JSON Web Token

Структура JWT и claims для access-токенов и ID-токенов

Спецификация: RFC 7519

JSON Web Token (JWT) используется как формат для access-токенов (профиль RFC 9068) и ID-токенов OpenID Connect. JWT содержит подписанные claims, которые можно верифицировать без обращения к серверу авторизации при каждом запросе.

Алгоритмы подписи

  • RS256 — RSA PKCS#1 v1.5 с SHA-256 (основной, для access-токенов и ID-токенов)
  • HS256 — HMAC с SHA-256 (для внутренних служебных токенов)
  • ES256 — ECDSA with P-256 — не реализован
  • EdDSA — Ed25519 — не реализован

Стандартные claims (раздел 4.1)

  • iss — издатель
  • sub — субъект (идентификатор пользователя или клиента)
  • aud — аудитория
  • exp — время истечения
  • iat — время выдачи
  • jti — уникальный идентификатор JWT
  • nbf — не ранее (включается в ответы интроспекции)

Поля заголовка JOSE

  • alg — алгоритм подписи
  • typ — тип токена (JWT или at+jwt для access-токенов)
  • kid — идентификатор ключа для поддержки ротации ключей

Валидация

  • Верификация подписи через JWKS (поиск по kid)
  • Проверка истечения срока действия (claim exp)
  • Валидация заголовка типа (typ)
  • Алгоритм none отклоняется (неподписанные JWT не принимаются)
  • Проверка claim nbf во входящих токенах — не применяется
  • JWE (зашифрованный JWT) — не поддерживается

Профиль access-токена

Access-токены следуют профилю JWT для OAuth 2.0 access-токенов (тип at+jwt) — client, scope и user claims встроены в payload.