-
介绍
RBAC(基于角色的权限控制,role base access control)是一种设计模式,用于设计和管理权限相关数据的一种模型。
RBAC认为权限授权的过程可以抽象地概括为:Who是否可以对What进行How的访问操作,并对这个逻辑表达式进行判断是否为True的求解过程,也即是将权限问题转换为What、How的问题,Who、What、How构成了访问权限三元组。组成
RBAC的组成主要有三个部分:用户、角色和权限
用户:每个用户都有唯一的id识别,并赋予不同的角色。
角色:不同角色具体不同的权限。
权限: 访问权限。
用户-角色:用户与角色之间的关系
角色-权限:角色和权限之间的关系RBAC支持的安全原则
最小权限原则:RBAC可以将角色配置成其完成任务所需的最小权限集合。
责任分离原则:可以通过调用相互独立互斥的角色来共同完成敏感的任务,例如要求一个普通员工和部门主管共同参与请求通过的提交。
数据抽象原则:可以通过权限的抽象来体现,如申请的不同审核层次操作等抽象权限,而不是使用典型的读、写、执行权限。RBAC的优缺点
1.优点
简化了用户和权限的关系
易扩展、易维护
2.缺点
RBAC模型没有提供操作顺序的控制机制,使得很难适应哪些对操作次序有严格要求的系统。RBAC的3种模型
1.RBAC0
最简单、最原始的实现方式,也是其他RBAC模型的基础。在该模型中,用户与角色之间可以是多对多的关系,即一个用户在不同场景下是可以有不同的角色,例如一个项目经理可以是部门的主管也可以是一个小组的组长。同时每个角色都至少有一个权限。这种模型下,用户和权限被分离独立开来,使得权限的授权认证更加灵活。
2.RBAC1
基于RBAC0模型,引入了角色间的继承关系,即角色上有了上下级的区别。角色间的继承关系可分为一般继承关系和受限继承关系。一般继承关系仅要求角色继承关系是一个绝对偏序关系,允许角色间的多继承。而受限继承关系则进一步角色继承关系是一个树结构,实现角色间的单继承。适用于角色之间层次分明,可以给角色分组分层。
3.RBAC2
基于RBAC0模型,进行了角色的访问控制。RBAC2中的一个基本限制是互斥角色的限制,互斥角色是指各自权限可以互相制约的两个角色。对于这类角色一个用户在某一次活动中只能被分配其中的一个角色,不能同时获得两个角色的使用权。
该模型的约束:- 互斥角色: 同一用户只能分配到一组互斥角色集合中至多一个角色,支持责任分离的原则。互斥角色是指各自权限互相制约的两个角色。对于这类角色一个用户在某一次活动中只能被分配其中的一个角色,不能同时获得两个角色的使用权。常举的例子:在审计活动中,一个角色不能同时被指派的会计角色和审计员角色。
- 基数约束: 一个角色被分配的用户数量受限;一个用户可拥有的角色数目受限;同样一个角色对应的访问权限数目也应受限,以控制高级权限在系统中的分配。如一个部门的主管人是有限的。
- 先决条件角色: 可分配角色给用户仅当该用户已经是另一角色的成员;对应的可分配访问权限给角色,仅当该角色已经拥有另一种访问权限。指要获得较高的权限,要首先拥有低一级的权限。如,国家主席是从副主席中选举的。
- 运行时互斥:同一用户拥有不同的角色时,在运行中不能同时使用不同的角色。
RBAC(一)
最新推荐文章于 2024-05-26 22:04:51 发布