Хранить информацию о профиле пользователя в JWT или использовать API - PullRequest
0 голосов
/ 13 мая 2019

В моем приложении у меня есть отдельные микросервисы для аутентификации пользователя и информации о профиле пользователя.Служба аутентификации пользователя использует Spring Security OAuth2 / JWT.После успешного входа пользователя в систему выдается токен JWT с уникальным идентификатором пользователя.

Мой запрос заключается в том, как другие службы должны получать информацию о профиле пользователя.Должен ли я поместить эту информацию (например, имя, фамилию и т. Д.) В токен JWT или создать API в службе профилей пользователей, которая получает информацию профиля пользователя после получения токена?

Что лучше?Практические советы будут оценены.

Ответы [ 3 ]

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

Я думаю, что важно подчеркнуть, что OAuth2 предназначен для авторизации протокола, а не аутентификации .

OpenID Connect решает эту проблему путем разделения идентификатора (ID_Token) и авторизации (токена доступа) на два разных токена для использования приложением. Могу ли я предложить вам вместо OpenID Connect использовать OpenID Connect?

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

У меня были подобные обсуждения с моей командой во время работы над микросервисом аутентификации. Хотя важно понимать, что JWT - это кодировка, а не шифрование, поэтому всегда рекомендуется не хранить конфиденциальные данные в JWT. Хотя элементы, которые мы решили сохранить в JWT, также должны зависеть от постановки задачи, которую мы решаем. Могут быть случаи, когда сохранение имени пользователя или идентификатора электронной почты не является конфиденциальной информацией, и вы можете захотеть сохранить это в JWT, чтобы избежать дополнительного вызова API.

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

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

...