¿Debería incluirse información sobre los permisos y roles del cliente en JWT?
Tener dicha información en el token JWT será muy útil ya que cada vez que llega un token válido, sería más fácil extraer la información sobre el permiso sobre el usuario y no será necesario llamar a la base de datos para obtener el mismo. Pero, ¿incluir esa información y no volver a verificar la misma en la base de datos será un problema de seguridad?
O,
¿Información como la mencionada anteriormente no debería ser parte de JWT nunca, y solo la base de datos debería usarse para verificar los roles de acceso y los permisos de un usuario?
fuente
Desde mi experiencia, si todos sus sistemas están utilizando alguna función central y base de datos de permisos, puede agregar todo eso a JWT.
Sin embargo, este enfoque podría no funcionar bien en escenarios de SSO cuando el servidor de autenticación en sí no tiene idea alguna sobre el sistema de destino que recibirá y confiará en el token.
Los roles y permisos del usuario están enteramente sobre el receptor del token JWT. Es especialmente cierto cuando integra la autenticación SSO con JWT en algunos sistemas heredados que ya tienen su subsistema de permisos y, por lo tanto, solo necesitan un reclamo para estar presente en JWT: el reclamo de identidad del usuario.
fuente