基于角色的访问控制

RBAC概述

基于角色的访问控制(Role-Based Access Control, RBAC )的核心思想就是将访问权限与角色相联系,通过给用户分配合适的角色,让用户与访问权限相联系。
角色是权限的集合,对于一个系统中可以有多个角色,每个角色对不同的资源有不同的权限,当用户访问资源时,首先系统识别用户的角色,然后决定该用户是否具有访问该资源的权限。角色是一种抽象的概念,将用户权限从每个单一用户抽象出来,成为一个集合,也就是角色。
在这里插入图片描述

通过将访问权限以角色的形式抽象出来,用户与客体无直接联系,他只有通过角色才享有该角色所对应的权限,从而访问相应的客体。

同一用户可以有多个角色,同一角色也可以对应多个用户,但是角色和用户之间具有约束关系。
角色的引入,用于表示用户具有的职权和责任,代表他执行某项任务的能力,反映他在多个工作人员流转的特定任务,中的职权分配,使计算机化的信息系统对资源存取权的定义更接近现实生活。 从而使这些模型精化的过程更平滑,使现实与计算机实现策略不矛盾。

角色的概念

1.RBAC中的核心概念就是角色(Role),角色是主体的访问权限的集合,一个角色可以对应多个用户,一个用户也可以拥有多个角色,在RBAC中角色的设定应具有一下两个特征:

决定角色的用户集与决定角色的权限集所使用的时间差不多;
角色对应的用户集的改变和角色的操作集的改变只能有少数特权用户来控制。

注释:

第一点决定了基于角色的访问控制不能降低访问效率;
第二点决定了只有少数“管理者“拥有赋予单个用户权限的权利;这一点是和自主访问控制(Discretionary Access Control,DAC)相对应的,DAC中主体可以自主地把自己所拥有客体的访问权限授予其它主体或者从其它主体收回所授予的权限,自主访问控制有以下缺点:
a) 资源管理比较分散;
b) 不易管理;
c) 不能对系统中信息流进行保护,信息容易泄漏;
当这种权限被限制到少数人手里之后可以避免上述错误。

2.最小权限原则

最小权限原则:规定用户所拥有的角色集对应 的权限不能超过用户工作时所需要的最大权限,而且每次会话中激活的角色集所对应的权限要小于等于用户所拥有的权限。

该原则为了防止一个用户在一次访问中使用角色集中权限远大于本次访问所需要的权限是出现的浪费,误操作等破坏系统的行为。

3.RBAC模型不允许一次会话创建另一次会话。会话指的是某次对资源存取的访问活动。

4.角色等级
RBAC模型中引入了角色等级来反映一个组织的职权和责任分布的偏序关系;

5.RBAC中的约束
“基本排斥“角色约束“:由于角色之间相互排斥,一个用户最多只能分配到这两个角色中的一个。
“ 双重约束”: 就是指同一权限只能分派给相互排斥的角色中的一个。
“ 基本限制”: 约束规定了一个角色可被分配的最大用户数。
“ 必备角色” 约束:当用户拥有了角色A时,角色B也可以分配给该用户,但角色B在其它任何情况下都不能分配给用户,这个角色A就是角色B的必备角色。

注释;
基本排斥角色约束:比如某个项目既有测试工程师角色,也有开发工程师角色,如果是开发工程师就不能是测试工程师,反之亦然,这两个就是基本排斥约束;
双重约束:比如在政府部门中局长和副局长这两个角色是相互排斥的,且对文件进行签发的操作只能由局长执行。 这种权限分配限制阻止了权限被故意地或者非故意地分配给护士长角色。
必备角色约束:比如如果你时A公司的员工,那么你可以是A公司的测试工程师,前者就是后者的必备角色。

用户,组与角色

在这里插入图片描述

除了用户直接对应角色之外,还可以用组的形式与角色相关联,当某用户需要某权限时加入拥有该权限角色对应的组,当任务完成后从组中离开即可。
如图所示,假如新用户需要访问资源1时,假如组1,通过组1对应角色所拥有的权限进行访问,
当删除用户结束任务后,从组2中离开即可。

组的出现可以减少不必要的重复工作,比如一个男人在家,既要承担父亲的角色,又要承担丈夫,儿子的角色,如果给每一个成家立业的男人赋予这么多角色将是很多重复的工作,不如将它们抽象为“男人组“,当某男人回家之后就把他加入到“男人组“中,离开家之后就把他从“男人组“中删除,这样就极大提高了效率。

一个组可以拥有多个角色,一个角色也可以有多个组;同样一个用户也可以出于多个组中,一个组中当然也可以有多个用户。
在这里插入图片描述

如上图所示,角色1拥有组1,组2两个组,角色2拥有组2,组3两个组,反过来,组1,组2分别拥有角色1,角色2的权限,组2同时拥有角色1,角色2的权限。
用户3觉得组2的权限满足不了他了,就可以选择退出组2,加入组3。对于角色也可以选择撤销某角色或添加某角色;从角色的角度讲,它可以添加某组用户或删除某组用户,这两者都是相对的。

因为用户的角色常常改变,但某角色的任务并不会改变很多。比如某博士生进学校,首先职称为讲师,之后随着阅历和科研水平的提高,职称也逐渐变为副教授和教授,也就是说该博士生的角色一直在改变,但是角色对应的权限并不会变化很大,这也是基于角色的访问控制的最重要的优势之一。

原文:https://blog.csdn.net/butterfly9844/article/details/78342613

猜你喜欢

转载自blog.csdn.net/qq_21383435/article/details/83589229
今日推荐