原创 大袤宏图
不同的权限模型提供了灵活的访问控制策略,本文绘制了不同模型的ER图,探讨这些模型的原理及适用场景。
一、访问控制列表模型
访问控制列表模型(Access Control List, ACL) 基于资源的访问控制列表,每个资源都有一个列表记录哪些用户可以对其进行哪些操作,适用于小型系统或特定资源的精细控制。
二、自主访问控制模型
自主访问控制模型(Discretionary Access Control, DAC) 在ACL模型的基础上,允许主体可以将自己拥有的权限自主地授予其他主体,所以权限可以任意传递。常见于文件系统,LINUX,UNIX、WindowsNT版本的操作系统都提供DAC的支持。
三、强制访问控制模型
强制访问控制模型(Mandatory Access Control, MAC)主体有一个权限标识,客体也有一个权限标识,而主体能否对该客体进行操作取决于双方的权限标识的关系。在该模型中,系统根据预先定义的安全策略和数据的安全级别来决定访问权限,用户通常无法自主更改这些权限。MAC模型中主要的是双向验证机制。常见于机密机构或者其他等级观念强烈的行业,如军用和市政安全领域的软件。
四、基于角色的访问控制模型
基于角色的访问控制模型(Role-Based Access Control, RBAC)RBAC通过引入角色概念,将用户与权限分离,形成用户-角色-权限的对应关系。角色是权限的集合,用户通过角色获得权限。适用于企业级系统,特别是需要细粒度权限控制的场景。
4.1 RBAC-0
RBAC模型基础:用户+角色+权限。
4.1 RBAC-1
RBAC变体-1:引入角色层级。
4.3 RBAC-2
RBAC变体-2:引入约束。
4.4 RBAC-3
RBAC变体-3:引入角色层级+约束(统一模型)。
五、基于属性的访问控制模型
基于属性的访问控制模型(Attribute-Based Access Control, ABAC):ABAC基于属性进行权限控制,不仅考虑用户、角色和资源,还考虑环境等属性,通过策略引擎动态决定访问权限。适用于需要高度动态权限控制的场景,如云计算、大数据平台等。
六、附件
关注公众号“大袤宏图”,回复关键字“权限控制”获取uml文件。