Перезвонит ли клиент серверу с тем же полученным токеном JWT? - PullRequest
1 голос
/ 15 апреля 2020

Я новичок в JWT и, следовательно, пытаюсь понять тонкости и ожидания при использовании JWT. В моем случае у меня есть микросервис, генерирующий токены JWT. JWT поддерживает механизмы RS256 и HS256. Насколько я понимаю, в случае RS256 я раздаю ключ publi c моему клиенту. В случае HS256 я передаю секрет своему клиенту.

Если я предоставлю доступ к любому из них своему клиенту, чего ожидать от клиента? Должен ли клиент обращаться с токеном, который я ему передал, как с неизменяемым, и они просто отправляют мне точный токен при последующих вызовах API? Или рекомендуется / хорошо, чтобы они мутировали токен и создавали новый, например, путем изменения таких вещей, как аудитория в полезной нагрузке токена, а затем для моего сервера, чтобы проверить вновь переданный токен? Мой сервер должен быть в состоянии проверить оба токена, но я не знаю, какой подход рекомендуется. Если рекомендуемый подход заключается в том, чтобы мой клиент не изменял токен, зачем мне сначала распространять ключи для клиента?

1 Ответ

0 голосов
/ 15 апреля 2020

Не раздайте ключ клиенту. Клиент не должен иметь возможность изменять токен доступа JWT. Следует обращаться с токеном как с непрозрачным.

Только сервер ресурсов (предоставляющий API), который принимает токен, должен проверять подпись.

В OAuth2 клиент - это приложение, которое получает токен доступа и использует его для вызова сервера API. , Он не должен заботиться о токене, пока он работает для вызова API.

Сервер авторизации аутентифицирует пользователя, получает согласие пользователя и выдает токен клиенту.

Затем клиент использует токен для вызова сервера ресурсов (API) с токеном в заголовке Authorization.

В вашем случае сервер авторизации и сервер ресурсов могут совпадать , но они не должны делиться ключами подписи с клиентом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...