Saltar al contenido principal
El control de acceso basado en roles (RBAC) se refiere a la asignación de permisos a los usuarios en función de su rol dentro de una organización. Ofrece un enfoque simple y fácil de administrar para la gestión del acceso, con menos probabilidades de error que asignar permisos a cada usuario de forma individual. Al usar RBAC para la gestión de roles, se analizan las necesidades de los usuarios y se los agrupa en roles según responsabilidades comunes. Luego, se asignan uno o más roles a cada usuario y uno o más permisos a cada rol. Las relaciones entre usuario y rol, y entre rol y permisos, simplifican la asignación de usuarios, ya que estos dejan de administrarse individualmente y pasan a tener privilegios acordes con los permisos asignados a sus roles. Por ejemplo, si usara RBAC para controlar el acceso a una aplicación de RR. HH., podría asignar a los responsables de RR. HH. un rol que les permita actualizar los datos de los empleados, mientras que el resto de los empleados solo podría ver sus propios datos. Al planificar su estrategia de control de acceso, una práctica recomendada es asignar a los usuarios la menor cantidad de permisos posible para que puedan realizar su trabajo.
Para un modelo de autorización más sólido, consulte Fine-Grained Authorization (FGA), que permite la autorización basada en atributos y en relaciones.

Beneficios del RBAC

Con RBAC, la gestión del acceso es más sencilla, siempre que se respeten estrictamente los requisitos de los roles. RBAC le ayuda a:
  • crear una asignación sistemática y repetible de permisos
  • auditar fácilmente los privilegios de los usuarios y corregir los problemas detectados
  • agregar y modificar roles rápidamente, así como implementarlos en todas las API
  • reducir la probabilidad de errores al asignar permisos a los usuarios
  • integrar usuarios de terceros asignándoles roles predefinidos
  • cumplir de forma más eficaz los requisitos normativos y legales de confidencialidad y privacidad

Modelo RBAC

Roles

En esencia, un rol es un conjunto de permisos que puedes aplicar a los usuarios. Usar roles facilita agregar, quitar y ajustar permisos, en lugar de asignarlos individualmente a cada usuario. A medida que tu base de usuarios crece en escala y complejidad, los roles resultan especialmente útiles. También puedes usar roles para agrupar permisos definidos para varias API. Por ejemplo, supongamos que tienes un módulo de marketing que permite a los usuarios crear y distribuir boletines a los clientes. Tu especialista en contenidos de marketing crea todos los boletines y los prepara para su distribución. Del mismo modo, tienes un módulo de eventos que permite a los usuarios crear, publicar y administrar el registro de eventos. Tu coordinador de eventos crea los eventos. Una vez que el vicepresidente de Marketing aprueba los boletines y los eventos, su asistente publica los eventos y distribuye los boletines. En este caso, tu API de boletines podría tener un permiso distribute:newsletters y tu API de eventos podría tener un permiso publish:events. Luego, estos permisos podrían agruparse en un rol llamado Marketing Publisher y asignarse al asistente del vicepresidente de Marketing. Además, los roles específicos de la Organización pueden agregarse a los miembros de la Organización y usarse para permitir el acceso en tu aplicación en función de las organizaciones con las que inicia sesión un usuario final. Esto resulta especialmente útil al dar soporte a productos SaaS y multiinquilino, donde un usuario concreto puede tener un rol con privilegios en una organización, pero no en otras.

Asignaciones de roles solapadas

RBAC es un modelo aditivo, por lo que, si tiene asignaciones de roles solapadas, sus permisos efectivos serán la unión de esas asignaciones de roles. Por ejemplo, supongamos que tiene una API que proporciona datos para una aplicación de eventos. Crea un rol Organizer y le asigna permisos que le permiten ver, crear y editar eventos. También crea un rol Registrant y le asigna permisos que le permiten ver eventos y registrarse en ellos. Cualquier usuario que tenga los roles Organizer y Registrant podrá ver, crear, editar y registrarse en eventos.

Control de acceso basado en roles en Auth0

Actualmente, ofrecemos dos formas de implementar el control de acceso basado en roles (RBAC), que puede usar en lugar del sistema interno de control de acceso de su API o junto con él: Estamos ampliando el conjunto de funcionalidades de Authorization Core para igualar la funcionalidad de Authorization Extension. Nuestra nueva implementación principal de RBAC mejora el rendimiento y la escalabilidad y, con el tiempo, ofrecerá un sistema de RBAC más flexible que Authorization Extension. Por ahora, ambos implementan las funciones clave de RBAC y le permiten restringir los alcances personalizados definidos para una API a aquellos que se hayan asignado al usuario como permisos. Para ver una comparación, consulte Authorization Core vs. Authorization Extension.
Authorization Core y Authorization Extension son funcionalidades completamente independientes. Para administrar grupos, roles o permisos, debe usar la funcionalidad en la que se crearon originalmente.
Aunque Delegated Administration Extension (DAE) y Authorization Core son funcionalidades completamente independientes, puede usar el conjunto de funcionalidades de Authorization Core para crear y administrar roles para DAE mediante Actions. Para obtener más información, consulte Sample Use Cases: Actions with Authorization.

Ampliar RBAC

Puede obtener un mayor control mediante Rules para restringir el acceso en función de una combinación de atributos, como el departamento del usuario, la hora del día, la ubicación desde la que se accede o cualquier otro atributo del usuario o de la API (por ejemplo, nombre de usuario, nivel de autorización de seguridad o nombre de la API). Para obtener más información sobre el uso de Rules con políticas de autorización, consulte Rules with Authorization Policies.

Más información