El control de acceso basado en roles es un paradigma de seguridad que permite controlar las acciones que los usuarios de un sistema/organización pueden realizar sobre los recursos del mismo, en función de los privilegios por rol. Se basa en una estructura de tres niveles:
- usuarios
- roles
- grupos
Tiene como objetivo asegurar la confidencialidad, integridad y disponibilidad de la información.
Normalmente empresas y organizaciones, quieren proteger sus datos de accesos y cambios no autorizados. Tradicionalmente para garantizar la seguridad, las el control de acceso se gestionaba de forma individual mediante listas de control de acceso (ACL - access control list). El problema de este tipo de mecanismo de control es que tanto el coste de mantenimiento, como el número de errores de gestión, aumentan a medida que aumenta el número de usuarios a gestionar.
Sin embargo RBAC es un modelo en el que se puede aplicar una política de seguridad a un nivel más específico, mediante el principio de seguridad del privilegio mínimo. Este principio se basa en la idea de que un usuario debe disponer de los privilegios mínimos necesarios para realizar su trabajo. Los roles abstraen los procesos del trabajo de una organización, pueden variar entre organizaciones, y pueden referirse a aspectos diversos como departamentos, ubicaciones, centros, o funciones de los empleados.
Los roles deben estar orientados a la estructura organizativa de la empresa. Se deben identificar todas las autorizaciones que cada empleado de la organización necesita, tales como acceso a internet, aplicaciones, recursos de red, o inicio de sesión.
Implementación
Lo primero que debe hacerse al implementar un mecanismo RBAC es determinar qué funciones se van a desempeñar en cada puesto o departamento, para en base a ellas, identificar las herramientas y/o recursos que se necesitan para llevarlas a cabo.
En segundo lugar se procederá a la asignación de roles, donde habrá que que tener en cuenta que:
- los roles se asignan a los empleados según sus tareas o puesto en la empresa
- se puede asignar uno o más roles por usuario
- Se pueden combinar los privilegios por rol con la asignación de privilegios de forma individual.
Por último, será necesario identificar el Ámbito al que se aplica el control de acceso, entendiendo por ámbito el conjunto de recursos. Los más habituales incluyen:
- Derechos a los datos (read, read and write, full access)
- Derechos de acceso a aplicaciones
- Autorización de solicitudes
Asignación de permisos
La asignación de permisos, se realiza a tres niveles:
- Se deben identificar las autorizaciones que necesitan los individuos que pertenecen a un mismo grupo de trabajo, como es el caso de un departamento. Las autorizaciones correspondientes se asignan a todos los empleados de cada departamento.
- A otro nivel de abstracción, es necesario definir funciones de un puesto y sus tareas implicadas, que pueden corresponder a un subconjunto dentro del departamento, o a un rol desempeñado de forma individual.
- Por último es posible asignar a cada empleado los roles adicionales que necesite
Modelos
- RBAC plano. Es el modelo base.
- A los usuarios se les asignan roles que tienen asignados privilegios, de forma que a través de un rol, los usuarios adquieren permisos.
- Requiere que el usuario-rol y el permiso-rol se pueda asignar de muchos a muchos
- Un usuario puede ser asignado a muchos roles
- Un rol puede ser asignado a muchos usuarios
- Un permiso puede ser asignado a muchos roles
- Implica la revisión del rol de los usuarios
- RBAC jerárquico
- Incluye las características del RBAC Plano, pero además los roles se organizan por jerarquías
- Los roles superiores contienen los permisos de los roles inferiores
- Deja la definición de jerarquías abierta, para que cada organización define la suya.
- Incluye las características del RBAC Plano, pero además los roles se organizan por jerarquías
- RBAC restringido
- Tiene en cuenta la separación de funciones, como un sistema creado para minimizar la comisión de actos fraudulentos. Se basa en la necesidad de implicar a más de un miembro o empleado para completar una tarea.
- Determinados accesos y acciones requieren de los permisos de más de un rol
- Puede ser estático o dinámico (implica activación de roles)
- RBAC simétrico
- Implica que se puedan revisar y ajustar los roles y permisos de cada función de forma periódica, para poder adaptarse a los cambios de forma efectiva.
Ventajas
Entre las principales ventajas de RBAC destacan:
- Flexibilidad. Los cambios en la estructura organizativa o autorizaciones se pueden modificar rápidamente.
- Administración. Su administración es mucho menos costosa que la gestión de permisos individuales, y se cometen muchos menos errores en su gestión
- Eficiencia. Gracias a la mejora en la administración el proceso es más eficiente, pudiendo automatizarse y disminuyendo los tiempos de espera.
- Seguridad. Aumenta la seguridad gracias al Principio del Menor Privilegio
- Transparencia. Al estar basada en roles, la administración se simplifica, y es más fácil de entender la política aplicada.
Desventajas
Sin embargo, la adopción de este sistema de control de accesos conlleva una serie de inconvenientes a tener en cuenta:
- Elaboración. Transferir la estructura organizativa a un modelo de control de accesos es laborioso.
- Conveniencia. Para modelos organizativos pequeños, la asignación de permisos individuales puede ser más ágil.
Fuentes
- Oracle. Guía de administración del sistema: servicios de seguridad
- Ionos Digital Guide. Role based access control (RBAC): ¿Cómo funciona el control de acceso basado en roles?
- Manage Engine. Prevenga los ataques basados en archivos con un control de acceso efectivo basado en roles
- Ático 34. Control de acceso basado en roles (RBAC): Una forma de mejorar la seguridad del sistema
- Foto de Gráfico creado por rawpixel.com
- Tutorials24x7. Guide To Design Database For RBAC In MySQL