В чем разница между JSON Web Signature (JWS) и JSON Web Token (JWT)?
Я кодировал службу RESTful на Java. Вот что я понял до сих пор (поправьте меня, если я ошибаюсь):
авторизация токена выполняется с помощью JSON Web Tokens (JWT) которые имеют три части: заголовок, полезную нагрузку и секрет (общий между клиентом и сервером).
Я понял эту концепцию и споткнулся веб-подпись JSON (JWS) во время чтения о JWT.
JWS также является закодированной сущностью подобно JWT, имеющему заголовок, полезную нагрузку и общий секрет.
вопрос: в чем разница между двумя понятиями, а именно JWT и JWS? И если они похожи технически, то в чем разница в их реализация?
Это первый раз, когда я работаю с аутентификацией на основе токенов, поэтому, возможно, я неправильно понял концепцию.
P. S. Я узнал о JWS при просмотре через примеры этот сайт.
1 ответов
JWT на самом деле использует JWS для своей подписи, от спецификации:
веб-маркер JSON (JWT) - это компактный, URL-адрес-безопасное средство, представляющее требования, подлежащие передаче между двумя сторонами. Претензии в JWT в несколько кодируется как объект JavaScript Object Notation (JSON), который используется как полезная нагрузка структуры веб-подписи JSON (JWS) или как открытый текст структуры веб-шифрования JSON (JWE), включающей претензии, которые должны быть подписаны цифровой подписью или MACed и / или зашифрованный.
таким образом, JWT-это структура JWS с объектом JSON в качестве полезной нагрузки. Были определены некоторые необязательные ключи (или утверждения), такие как iss
, aud
, exp
etc.
Это также означает, что его защита целостности не ограничивается только общими секретами, но также может использоваться криптография с открытым/закрытым ключом.