JWT (JSON Web Token)
Что такое JWT (JSON Web Token)?
JWT (JSON Web Token)Компактный URL-безопасный формат токена (RFC 7519) с подписанными JSON-утверждениями; используется как access token, ID token и контейнер сессии.
JSON Web Token — строка из трёх частей в Base64URL, разделённых точками: заголовка, полезной нагрузки и подписи. Заголовок указывает алгоритм подписи, payload содержит утверждения iss, sub, aud, exp и пользовательские данные, подпись позволяет получателю проверить целостность и происхождение. JWT может быть подписан (JWS) или зашифрован (JWE) и лежит в основе OAuth 2.0, OpenID Connect и межсервисной аутентификации. Без состояния хорошо масштабируется, но плохо отзывается. Фиксируйте алгоритм на сервере, проверяйте aud, iss и exp, используйте короткое время жизни и сочетайте с refresh-токенами или introspection.
● Примеры
- 01
OIDC ID-токен, подписанный RS256, возвращён в одностраничное приложение.
- 02
Access-токен с утверждениями { "sub": "u123", "scope": "read:profile", "exp": 1734567890 }.
● Частые вопросы
Что такое JWT (JSON Web Token)?
Компактный URL-безопасный формат токена (RFC 7519) с подписанными JSON-утверждениями; используется как access token, ID token и контейнер сессии. Относится к категории Идентификация и доступ в кибербезопасности.
Что означает JWT (JSON Web Token)?
Компактный URL-безопасный формат токена (RFC 7519) с подписанными JSON-утверждениями; используется как access token, ID token и контейнер сессии.
Как работает JWT (JSON Web Token)?
JSON Web Token — строка из трёх частей в Base64URL, разделённых точками: заголовка, полезной нагрузки и подписи. Заголовок указывает алгоритм подписи, payload содержит утверждения iss, sub, aud, exp и пользовательские данные, подпись позволяет получателю проверить целостность и происхождение. JWT может быть подписан (JWS) или зашифрован (JWE) и лежит в основе OAuth 2.0, OpenID Connect и межсервисной аутентификации. Без состояния хорошо масштабируется, но плохо отзывается. Фиксируйте алгоритм на сервере, проверяйте aud, iss и exp, используйте короткое время жизни и сочетайте с refresh-токенами или introspection.
Как защититься от JWT (JSON Web Token)?
Защита от JWT (JSON Web Token) обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия JWT (JSON Web Token)?
Распространённые альтернативные названия: JSON Web Token.
● Связанные термины
- appsec№ 575
Уязвимости JWT
Классы ошибок в реализации проверки JSON Web Token, позволяющие подделывать токены, повышать привилегии или обходить аутентификацию.
- identity-access№ 749
OAuth 2.0
Открытый фреймворк авторизации, позволяющий владельцу ресурса предоставлять стороннему приложению ограниченный и регулируемый доступ к API без передачи учётных данных.
- identity-access№ 760
OpenID Connect (OIDC)
Слой идентификации поверх OAuth 2.0, позволяющий клиентам проверять подлинность пользователя и получать базовые сведения о профиле через подписанные ID-токены.
- identity-access№ 007
Access-токен
Короткоживущая учётка, выдаваемая сервером авторизации; клиент предъявляет её API, чтобы получить доступ к защищённым ресурсам от имени пользователя или сервиса.
- identity-access№ 913
Refresh-токен
Долгоживущая учётка, через которую клиент получает новые короткоживущие access-токены у сервера OAuth 2.0 без повторного входа пользователя.
- identity-access№ 088
Bearer-токен
Непрозрачный или структурированный мандат (RFC 6750), дающий доступ к ресурсу самим фактом владения, без подтверждения, что обладатель — законный владелец.