Генератор JWT
Создавайте подписанные JWT с настраиваемым заголовком, нагрузкой и ключом. Поддержка HS256, RS256, ES256.
Что такое JWT?
JWT (JSON Web Token, RFC 7519) — открытый стандарт для безопасной передачи информации в виде компактного JSON-объекта. Состоит из трёх частей, разделённых точками: Header.Payload.Signature.
Какие основные сценарии использования JWT?
JWT широко используется для аутентификации (единый вход), авторизации API и безопасного обмена информацией. После входа сервер выдаёт JWT, который клиент включает в последующие запросы.
Как выбрать между HS256, RS256 и ES256?
HS256 использует общий секрет и самый быстрый, подходит для одного сервиса. RS256 использует пары ключей RSA, лучше для мульти-сервисной архитектуры. ES256 использует эллиптические ключи с короткими подписями и высокой безопасностью.
Что такое claims в JWT?
Claims — это утверждения в нагрузке. Зарегистрированные: iss (издатель), sub (тема), exp (срок), aud (аудитория). Публичные claims можно зарегистрировать в IANA. Приватные — настраиваемые поля, согласованные между сторонами.
Как проверить JWT?
Декодируйте заголовок для получения алгоритма, затем используйте соответствующий ключ (общий секрет для HMAC, открытый ключ для RSA/ECDSA) для проверки подписи. Также проверьте exp, iss и aud.
Безопасно ли создавать JWT в браузере?
Да, этот инструмент использует Web Crypto API. Ваши ключи и токены никогда не покидают браузер. Данные не отправляются на серверы.
В чём разница между кодированием и подписью?
Кодирование (Base64) просто преобразует данные в передаваемый формат и обратимо кем угодно. Подпись создаёт криптографический хеш, доказывающий, что токен не был изменён.
Можно ли зашифровать JWT?
Да, JWE (JSON Web Encryption) шифрует содержимое нагрузки. Стандартный JWT (JWS) обеспечивает только целостность, но нагрузка читаема любым, у кого есть токен.
Каковы лучшие практики безопасности JWT?
Всегда устанавливайте короткое время жизни. Используйте сильные случайные секреты для HMAC. Храните приватные ключи безопасно. Не помещайте конфиденциальные данные в нагрузку. Используйте HTTPS.
Как JWT сравнивается с сессионной аутентификацией?
JWT не имеет состояния — сервер не хранит данные сессии, что идеально для микросервисов и кросс-доменных сценариев. Сессии требуют серверного хранения, но позволяют мгновенный отзыв.
Подходит ли JWT для выхода и управления сессиями?
JWT по умолчанию не имеет состояния, поэтому выход требует дополнительных механизмов: чёрные списки или короткоживущие токены с токенами обновления. Используйте короткоживущие токены доступа (например, 15 минут).
Как работает паттерн refresh token с JWT?
Используйте короткоживущий токен доступа (JWT) для вызовов API и более долгоживущий токен обновления для получения новых токенов доступа. Когда токен доступа истекает, клиент отправляет токен обновления для получения нового JWT.
Что такое алгоритм «none»?
Алгоритм «none» означает, что JWT не подписан. Используйте только для тестирования. Многие библиотеки отключают его по умолчанию из соображений безопасности.
Есть ли ограничения по размеру JWT?
У JWT нет фиксированного ограничения, но поскольку он отправляется в HTTP-заголовках, размер должен быть менее 4 КБ. Делайте нагрузку минимальной.