> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Aprenda a implementar la autorización basada en roles (RBAC) en distintos escenarios y explore cómo usar Rules con RBAC.

# Casos de uso de ejemplo: control de acceso basado en roles

Veamos un ejemplo de por qué podría necesitar y cómo podría usar el [control de acceso basado en roles (RBAC)](/es/docs/manage-users/access-control/rbac) en su <Tooltip tip="Flujo de autorización: concesión de autorización (o flujo de trabajo) especificada en el marco de OAuth 2.0." cta="Ver glosario" href="/es/docs/glossary?term=authorization+flow">flujo de autorización</Tooltip>.

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](/es/docs/get-started/apis/add-api-permissions) 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](/es/docs/manage-users/access-control/configure-core-rbac/roles/create-roles) llamado `Gift Shop Manager` y [agrega estos permisos a ese rol](/es/docs/manage-users/access-control/configure-core-rbac/roles/add-permissions-to-roles).

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](/es/docs/manage-users/access-control/configure-core-rbac/rbac-users/assign-roles-to-users) `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 <Tooltip tip="Token de acceso: credencial de autorización, en forma de una cadena opaca o JWT, utilizada para acceder a una API." cta="Ver glosario" href="/es/docs/glossary?term=Access+Token">Token de acceso</Tooltip> 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](/es/docs/manage-users/access-control/configure-core-rbac/rbac-users/remove-roles-from-users) 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.
