В Интернете много информации о JsonWebTokens, но не так много об ее использовании для подписи содержимого HTTP-сообщения.
Так что он может подписывать свои собственные заявления, но мне это не ясноесли есть стандартный способ (и доступные реализации), чтобы позволить ему нести подпись тела сообщения (по крайней мере, независимо от того, что находится ниже заголовков HTTP).
Это первостепенно, потому что если другой клиентукрал сам токен, его можно было использовать для создания недопустимых запросов до истечения срока его действия.
Это единственный ресурс, который я пока нашел по этой теме: Целостность сообщений API с JSON Web Token (JWT). Заголовок многообещающий, но статья на самом деле не говорит, как это сделать, она просто показывает заинтересованность в этом.
Кстати, как плюс, если есть возможность подписать контенттела, было бы здорово реализовать отказоустойчивую реализацию проверки подписи, например кусочную (скажем, отбросить сообщение, если оно сразу распознает, что первые 10 КБ были подделаны, вместо того, чтобы потреблять целые 10 МБ)сообщение).
Подробнее
Мне известно, что JWT является токеном , поэтому при использовании авторизации сторона, предоставляющая токен, обычно используется. клиенту, который затем перенаправит его прозрачно в своих запросах на сервер. Таким образом, сторона аутентификации не знает, какие фактические запросы клиент будет делать дальше, и не сможет подписать содержимое таких запросов (что также нецелесообразно, для каждого запроса должен выдаваться другой «токен»). Он просто передает клиенту токен, который будет прикреплен клиентом без изменений к каждому запросу.
Но я полагаю, что в некоторых случаях в реальном мире JWT также создается самим клиентом (не третьей стороной), что означает, что клиент знает общий секрет и законно подписывает запросы для себя.
В этом случае клиент, в принципе, может подписывать содержимое тела http, а не только содержимоетокен JWT.
В общем, я подозреваю, что формат JWT не обслуживает такую подпись. Для этого клиент и сервер должны определить свой собственный протокол / формат.