Prima cosa: mettiamo da parte il dibattito sulla necessità di utilizzare JWT per la gestione delle sessioni, ne sono già a conoscenza e (almeno alcuni) i suoi limiti ( invalidation , prolungamento automatico della scadenza , ecc.);)
Immagina una piattaforma di blogging che ospita più blog. Gli utenti sono ADMIN dell'intera piattaforma o AUTHOR di uno o più blog. Supponiamo che archivi i ruoli nelle affermazioni del tuo JWT, ad es. per un AUTORE:
- userId: 42
- roles: ["AUTHOR"]
In un mondo apolide ideale, come fai a conservare il fatto che questo utente è un AUTORE per solo i blog # 70 e # 71 ad esempio? JWT è ancora adatto qui?
Un approccio potrebbe essere quello di aggiungere l'id del blog che l'utente è un AUTORE, ad es. se sono un AUTORE del blog # 70 solo:
- roles: ["AUTHOR.70"]
Ma cosa succede se l'utente è un AUTORE di dire più di 100 blog? Né
- roles: ["AUTHOR.70.71.72.73.74..."]
né
- roles: ["AUTHOR.70", "AUTHOR.71", "AUTHOR.72", "AUTHOR.73", "AUTHOR.74", ...]
mi sembra carino ...
C'è qualche raccomandazione per un approccio standard in questo caso? L'apolide è un po 'utopico qui? In che modo i provider di cloud authn / authz (ad esempio Auth0, Okta, ...) gestiscono questo?
Dichiarazione di non responsabilità: non sono un ingegnere della sicurezza, quindi vacci piano;)