Подтвердить что ты не робот

В чем разница между JSON Web Signature (JWS) и JSON Web Token (JWT)?

Я кодировал службу RESTful на Java. Это то, что я понял до сих пор (исправьте меня, если я ошибаюсь):

Авторизация авторизации осуществляется с использованием JSON Web Tokens (JWT), которые имеют три части: заголовок, полезную нагрузку и секрет (совместно используемый клиентом и сервером).

Я понял эту концепцию и наткнулся на JSON Web Signature (JWS), когда читал о JWT.

JWS также является закодированным объектом, подобным JWT, имеющим заголовок, полезную нагрузку и общий секрет.

Вопрос: В чем разница между двумя концепциями, а именно JWT и JWS? И если они похожи технически, то какая разница в их реализации?

Это первый раз, когда я работаю с auth на основе токенов, так что, возможно, я совсем не понял эту концепцию.

P.S. Я узнал о JWS, просматривая примеры на этом веб-сайте.

4b9b3361

Ответ 1

JWT фактически использует JWS для своей подписи, из спецификации:

JSON Web Token (JWT) - это компактный, безопасный URL-адрес для представления которые передаются между двумя сторонами. Претензии в JWT закодированный как объект Object Object Notation (JSON), который используется как полезную нагрузку структуры JSON Web Signature (JWS) или как открытый текст структуры JSON Web Encryption (JWE), позволяющий утверждает, что имеет цифровую подпись или MACed и/или зашифрован.

Таким образом, JWT представляет собой структуру JWS с объектом JSON в качестве полезной нагрузки. Определены некоторые необязательные ключи (или формулы), такие как iss, aud, exp и т.д.

Это также означает, что его защита целостности не ограничивается только разделяемыми секретами, но также можно использовать криптографию с открытым/закрытым ключом.