Czy informacje o uprawnieniach i rolach klienta powinny być zawarte w JWT?
Posiadanie takich informacji w tokenie JWT będzie bardzo pomocne, ponieważ za każdym razem, gdy pojawi się prawidłowy token, łatwiej byłoby wyodrębnić informacje o uprawnieniu użytkownika i nie będzie potrzeby wywoływania bazy danych dla tego samego. Ale czy włączenie takich informacji i nie dwukrotne sprawdzenie ich w bazie danych będzie stanowić problem bezpieczeństwa?
Lub,
Informacje takie jak te wymienione powyżej nie powinny być częścią JWT, a jedynie baza danych powinna być używana do sprawdzania ról dostępu i uprawnień użytkownika?
źródło
Z mojego doświadczenia wynika, że jeśli wszystkie systemy korzystają z centralnej bazy danych ról i uprawnień, możesz dodać to wszystko do JWT.
Jednak to podejście może nie działać dobrze w scenariuszach jednokrotnego logowania, gdy sam serwer uwierzytelniający nie ma pojęcia o systemie docelowym, który odbierze i zaufa tokenowi.
Role i uprawnienia użytkownika spoczywają całkowicie na odbiorcy tokenu JWT. Jest to szczególnie prawdziwe, gdy integrujesz uwierzytelnianie jednokrotnego logowania z JWT w niektórych starszych systemach, które mają już swój podsystem zezwoleń, a zatem potrzebują tylko jednego oświadczenia, aby być obecnym w JWT - oświadczenie o tożsamości użytkownika.
źródło