Sollten Informationen zu den Berechtigungen und Rollen des Clients in JWT enthalten sein?
Solche Informationen im JWT-Token zu haben, ist sehr hilfreich, da es jedes Mal, wenn ein gültiges Token eingeht, einfacher ist, die Informationen über die Berechtigung des Benutzers zu extrahieren, und es nicht erforderlich ist, die Datenbank für dasselbe aufzurufen. Aber ist es ein Sicherheitsproblem, solche Informationen in die Datenbank aufzunehmen und sie nicht doppelt zu überprüfen?
Oder,
Informationen wie die oben genannten sollten niemals Teil von JWT sein, und nur die Datenbank sollte zur Überprüfung der Zugriffsrollen und Berechtigungen eines Benutzers verwendet werden.
quelle
Wenn alle Ihre Systeme eine zentrale Rollen- und Berechtigungsdatenbank verwenden, können Sie meiner Erfahrung nach all das zu JWT hinzufügen.
Dieser Ansatz funktioniert jedoch möglicherweise nicht gut in SSO-Szenarien, wenn der Authentifizierungsserver selbst keinerlei Ahnung von dem Zielsystem hat, das das Token empfängt und ihm vertraut.
Die Rollen und Berechtigungen des Benutzers liegen vollständig beim Empfänger des JWT-Tokens. Dies gilt insbesondere dann, wenn Sie die SSO-Authentifizierung mit JWT in einige Legacy-Systeme integrieren, deren Berechtigungssubsystem bereits vorhanden ist und daher nur ein Anspruch erforderlich ist, um in JWT vorhanden zu sein - der Anspruch auf Benutzeridentität.
quelle