¿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?
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:
Lea otras preguntas en las etiquetas authorization access-control permissions rbac