权限管理系统:
ACL模型:访问控制列表
DAC模型:自主访问控制
MAC模型:强制访问控制
ABAC模型:基于属性的访问控制
RBAC模型:基于角色的权限访问控制
1、ACL(Access Control List):每一个客体都有一个列表,列表中记录的是哪些主体可以对哪些客体做什么。
缺点:当主体的数量较多时,配置和维护成本大,易出错。
2、DAC(Discretionary Access control):是ACL的扩展,在其基础上,允许主体可以将自己拥有的权限自主地授予其他主体,权限可以随意传递。
缺点:权限控制比较分散,主体权限太大,有泄露信息的危险。
3、MAC(Mandatory Access Control):双向验证机制,常用于机密机构或者其他等级观念强的行列;主体和客体都有权限标识,主体能否对客体进行操作取决于双方的权限标识信息。
缺点:控制严格、实现工作量大,缺乏灵活性。
4、RBAC(Role-Based Access Control):指通过用户的角色(Role)授权其相关权限,角色代表了权限。
实现了灵活的访问控制,相比直接授予用户权限,要更加简单、高效、可扩展。
RBAC三要素:
用户:系统中的所有账户
角色:一系列权限的集合
权限:菜单、按钮、数据的增删改查
5、ABAC(Attribute-Based Access Control):基于属性的访问控制,通过各种属性来动态判断一个操作是否可以被允许。
这个模型在云系统中使用的比较多,比如 AWS,阿里云等
ABAC的四大要素:
• 对象:对象是当前请求访问资源的用户。用户的属性包括 ID,个人资源,角色,部门和组织成员身份等
• 资源:资源是当前用户要访问的资产或对象,例如文件,数据,服务器,甚至 API
• 操作:操作是用户试图对资源进行的操作。常见的操作包括“读取”,“写入”,“编辑”,“复制”和“删除”
• 环境:环境是每个访问请求的上下文。环境属性包含访问的时间和位置,对象的设备,通信协议和加密强度等。