Как часто следует восстанавливать претензии jti? - PullRequest
0 голосов
/ 09 мая 2019

Я внедряю систему аутентификации на основе JWT в моем REST API и собираюсь использовать утверждение JWT_ID в токене.Согласно Auth0 , JWT ID позволяет использовать токен один раз:

jti (JWT ID): уникальный идентификатор;может использоваться для предотвращения воспроизведения JWT (позволяет использовать токен только один раз)

Мне интересно, как часто следует генерировать идентификатор JWT?

  • По каждому запросу
  • Только при входе в систему
  • При обновлении токена (если используется система обновления токена)

ПРИМЕЧАНИЕ: Я не использую Auth0 для аутентификации.

Ответы [ 2 ]

1 голос
/ 09 мая 2019

Имейте в виду, что jti заявка на использование необязательна , поэтому вы не обязаны ее использовать.Тем не менее, это очень полезно, когда вам нужно отслеживать токен, либо в белом, либо в черном списке.

Мне интересно, как часто следует генерировать JWT ID?

Я не уверен, что вы имеете в виду под регенератом .

Значение утверждения jti должно быть назначено при создании токена.И как только токен подписан , его невозможно изменить без аннулирования подписи .Таким образом, если вы назначаете новый идентификатор токену в каждом запросе, вам придется снова подписывать токен, поэтому вы получите новый токен для каждого запроса.

Вот как jti требование определено в RFC 7519 :

4.1.7.Заявка jti (идентификатор JWT)

Заявка jti (идентификатор JWT) предоставляет уникальный идентификатор для JWT.Значение идентификатора ДОЛЖНО быть назначено таким образом, чтобы обеспечить незначительную вероятность того, что одно и то же значение будет случайно назначено другому объекту данных;если приложение использует несколько эмитентов, коллизии ДОЛЖНЫ быть предотвращены среди значений, созданных разными эмитентами.Заявка jti может использоваться для предотвращения воспроизведения JWT.Значение jti является чувствительной к регистру строкой.Использование этого утверждения НЕОБЯЗАТЕЛЬНО.


Итог

Исходя из того, что я понимаю в вашем случае использования, имеет смысл выпустить новый токен (с уникальным идентификатором,например, UUID ), когда клиент аутентифицируется, и когда клиент обновляет токен.

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

0 голосов
/ 09 мая 2019

jwt_id должен генерироваться только при входе в систему и при обновлении токена .Вместо этого лучше всего использовать expireIn и maxAge , чтобы количественно оценить срок действия токена.

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