Saltar al contenido principal
Veamos un ejemplo de por qué podría necesitar y cómo podría usar el control de acceso basado en roles (RBAC) en su . Supongamos que es una empresa que ofrece software como servicio B2B a organizaciones sin fines de lucro. Su producto permite a estas organizaciones crear, administrar y promocionar productos entre posibles donantes. Su aplicación contiene varios módulos, dos de los cuales son:
  • un módulo de punto de venta (POS) para una tienda de regalos que permite a las organizaciones sin fines de lucro crear de forma eficaz tiendas temporales de camisetas y gestionar sus ventas.
  • un módulo de marketing que permite a las organizaciones sin fines de lucro crear y distribuir boletines a sus donantes.
Quiere usar Auth0 para controlar el acceso de sus clientes sin fines de lucro a distintas partes de su aplicación. Sin RBAC, todos los empleados y voluntarios de esas organizaciones tendrían acceso a todas las funcionalidades de su aplicación, lo cual no es lo ideal, especialmente porque una de ellas es un refugio de animales que cuenta con voluntarios con conocimientos únicamente del área en la que colaboran. En su lugar, implementa RBAC y crea algunos permisos que necesitarían los usuarios de su módulo POS de tienda de regalos:
  • read:catalog-item
  • read:customer-profile
  • create:invoice
Y, para facilitar su administración, crea un rol llamado Gift Shop Manager y agrega estos permisos a ese rol. De forma similar, crea permisos para los usuarios de su módulo de marketing, entre ellos:
  • create:newsletter
  • edit:newsletter
  • delete:newsletter
  • send:newsletter
  • edit:distribution-list
Y crea un rol llamado Newsletter Admin y le agrega estos permisos. Ahora, cuando el refugio de animales incorpora a su voluntaria, Astrid, para atender su tienda temporal de camisetas, se le puede asignar el rol Gift Shop Manager. Cuando le asigna este rol a Astrid, obtiene todos los permisos asociados a él. Como Astrid no sabe nada sobre la publicación de boletines (y no se maneja muy bien con el correo electrónico), no le asigna el rol Newsletter Admin, por lo que no tiene acceso al módulo de marketing. Desde una perspectiva más técnica, cuando Astrid inicia sesión en su producto, Auth0 la autentica y autoriza, e incluye los permisos en el devuelto. Luego, su producto inspecciona el token para determinar qué módulo debe mostrarle a Astrid. Al usar el RBAC de Auth0, evita crear y mantener sistemas de autorización independientes; en su lugar, usa el token que ya recibe durante la autorización. Y cuando Astrid se muda o decide que está cansada de encargarse de la tienda de regalos y prefiere coordinar el programa de acogida, puede quitarle fácilmente el rol Gift Shop Manager y asignarle uno nuevo. Y, si mantener los roles y permisos de todos sus clientes se vuelve demasiado difícil de gestionar, también puede usar la API de Auth0 para crear un módulo dentro de su producto que permita a los clientes administrar su propio RBAC, reduciendo así la responsabilidad y los costos de personal.