Lo primero: dejemos de lado el debate sobre si se debe usar JWT para administrar sesiones, ya lo conozco y (al menos algunas de) sus limitaciones ( invalidación , prolongación automática de la caducidad , etc.);)
Imagina una plataforma de blogs, que aloja múltiples blogs. Los usuarios son ADMINISTRADORES de toda la plataforma o AUTORES de uno o más blogs. Supongamos que almacena roles en las reclamaciones de su JWT, por ejemplo, para un AUTOR:
- userId: 42
- roles: ["AUTHOR"]
En un mundo sin estado ideal, ¿cómo almacena el hecho de que este usuario es un AUTOR solo para los blogs # 70 y # 71 por ejemplo? ¿JWT sigue siendo adecuado aquí?
Un enfoque podría ser adjuntar el ID del blog del que el usuario es un AUTOR, por ejemplo. Si son AUTORES del blog # 70 solamente:
- roles: ["AUTHOR.70"]
¿Pero qué pasa si el usuario es un AUTOR de, digamos, más de 100 blogs? Ninguno
- roles: ["AUTHOR.70.71.72.73.74..."]
ni
- roles: ["AUTHOR.70", "AUTHOR.71", "AUTHOR.72", "AUTHOR.73", "AUTHOR.74", ...]
me parece bien ...
¿Hay algún enfoque estándar recomendado en este caso? ¿Es apátrida un poco utópico aquí? ¿Cómo manejan esto los proveedores de la nube de authn / authz (por ejemplo, Auth0, Okta, ...)?
Descargo de responsabilidad: no soy un ingeniero de seguridad, así que no lo dude;)