28

Я кодировал службу RESTful на Java. Это то, что я понял, до сих пор (поправьте меня, если я ошибаюсь):В чем разница между JSON Web Signature (JWS) и JSON Web Token (JWT)?

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

Я понял эту концепцию и наткнулся на Подпись JSON Web (JWS) во время чтения о JWT.

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

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

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

P.S. Я узнал о JWS во время просмотра примеров на this website.

ответ

27

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

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

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

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

+0

Хорошо, что имеет смысл. Итак, где моя информация о пользователе идет, если полезная нагрузка содержит набор требований? Можете ли вы показать мне пример? – leo

+0

, пожалуйста, ознакомьтесь с примерами в Приложении A в спецификации здесь: https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32 –

+0

Претензии будут иметь информацию о пользователе. Вот пример кода с комментариями, говорящими о том, что происходит на https://bitbucket.org/b_c/jose4j/wiki/JWT%20Examples –

Смежные вопросы