¿Cuál es la diferencia entre RBAC y DAC / ACL?

57

¿Cuáles son los beneficios de cada uno, y cuándo debo elegir uno sobre el otro? ¿Hay situaciones donde estos deben ser combinados?

¿Tienes ejemplos de usos comunes?

¿Y qué hay de MAC, dónde encaja eso?

    
pregunta AviD 14.11.2010 - 20:27
fuente

1 respuesta

77

RBAC (Control de acceso basado en roles) se basa en la definición de una lista de roles empresariales y en la adición de cada usuario en el sistema a uno o más roles. Luego se otorgan permisos y privilegios a cada rol, y los usuarios los reciben a través de su membresía en el rol (casi equivalente a un grupo). Las aplicaciones normalmente probarán la membresía del usuario en un rol específico y otorgarán o denegarán el acceso en función de eso.
El control de acceso discrecional (DAC) permite que un usuario o administrador defina una lista de control de acceso (ACL) en un recurso específico (por ejemplo, archivo, clave de registro, tabla de base de datos, objeto de SO, etc.), esta lista contendrá entradas (ACE) que definen cada usuario que tiene acceso al recurso, y cuáles son sus privilegios para ese recurso.

El principal beneficio de RBAC sobre DAC es la facilidad de administración. En principio, tiene muy pocas funciones, administradas centralmente, sin importar cuántos usuarios, y es solo una cuestión de otorgarle a cada usuario la función correcta. a diferencia de DAC, donde para cada nuevo usuario (o cambio de usuario, eliminación, etc.), tiene que ir a todos los recursos a los que necesita acceder y agregarlos a la lista.
Por otro lado, el DAC es a menudo más simple y generalmente más granular. Además, en el modelo DAC, el propietario de los datos puede decidir quién tiene acceso (si tiene ese permiso en los datos) y agregar o eliminar personas de la lista.

Un ejemplo muy común de DAC es el sistema de archivos de Windows. Por otro lado, un ejemplo muy común de RBAC es el DAC en servidores de archivos corporativos: cualquier persona en el grupo "Directorio de ventas" ActiveDirectory tendrá acceso a la carpeta \ Sales \ shared. Más comúnmente es el grupo de administradores en Windows.

MAC es el control de acceso obligatorio, esto puede verse como una clasificación o nivel de privacidad. Esto se usa con más frecuencia en los sistemas militares, y en los días de mainframe :). Ya no se usa mucho, aunque los sistemas operativos actuales están implementando una parte de esto, como los niveles de integridad de Vista / Win7.

Para resumir las diferencias:

  • DAC se basa en permisos personales, RBAC en "grupo", permisos de nivel
  • el propietario de los datos establece el DAC, el propietario / s del sistema RBAC (generalmente, el desarrollador define el acceso dado a cada función y el administrador operativo pone a los usuarios en las funciones)
  • Las definiciones de DAC se adjuntan normalmente a los datos / recursos, mientras que RBAC se suele definir en dos lugares: en el código / configuración / metadatos (acceso a los roles) y en el objeto del usuario (o tabla: los roles que tiene cada usuario) .
  • Por otro lado, los roles de RBAC se administran de manera centralizada (a quién se asocia con qué roles), mientras que el DAC se administra "en el recurso" (es decir, usted administra cada recurso de manera individual).
  • La definición de permisos por rol es típicamente estática en RBAC, y los usuarios solo tienen roles otorgados; en DAC, los permisos por recurso a menudo se cambian en tiempo de ejecución.
  • DAC debe verse como una enumeración de "quién tiene acceso a mis datos", y RBAC define "qué puede hacer este usuario".
respondido por el AviD 14.11.2010 - 20:42
fuente

Lea otras preguntas en las etiquetas