本篇内容主要讲解“rbac是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“rbac是什么”吧!
RBAC(Role-based access control)是一种以角色为基础的访问控制(Role-based access control,RBAC),它是一种较新且广为使用的权限控制机制,这种机制不是直接给用户赋予权限,而是将权限赋予角色。
RBAC 权限模型将用户按角色进行归类,通过用户的角色来确定用户对某项资源是否具备操作权限。RBAC 简化了用户与权限的管理,它将用户与角色关联、角色与权限关联、权限与资源关联,这种模式使得用户的授权管理变得非常简单和易于维护。
权限、角色这些东西,在早期 1970 年代的商业计算机程序中就可以找到相关的应用,但是早期的程序相对简单,而且并不存在一个明确的、通用的、公认的权限管理模型。
Ferraiolo 和 Kuhn 两位大佬于 1992 年提出了一种基于通用角色的访问控制模型(看来这个模型比松哥年龄还大),首次提出了 RBAC 权限模型用来代替传统的 MAC 和 DAC 两种权限控制方案,并且就 RBAC 中的相关概念给出了解释。
Ferraiolo,Cugini 和 Kuhn 于 1995 年扩展了 1992 年提出的权限模型。该模型的主要功能是所有访问都是通过角色进行的,而角色本质上是权限的集合,并且所有用户只能通过角色获得权限。在组织内,角色相对稳定,而用户和权限都很多,并且可能会迅速变化。因此,通过角色控制权限可以简化访问控制的管理和检查。
到了 1996 年,Sandhu,Coyne,Feinstein 和 Youman 正式提出了 RBAC 模型,该模型以模块化方式细化了 RBAC,并提出了基于该理论的 RBAC0-RBAC3 四种不同模型。
今天,大多数信息技术供应商已将 RBAC 纳入其产品线,除了常规的企业级应用,RBAC 也广泛应用在医疗、国防等领域。
说到 RBAC,我们就得从它的模型分类开始看起。
RBAC0 是最简单的用户、角色、权限模型。RBAC0 是 RBAC 权限模型中最核心的一部分,后面其他模型都是在此基础上建立。
在 RBAC0 中,一个用户可以具备多个角色,一个角色可以具备多个权限,最终用户所具备的权限是用户所具备的角色的权限并集。
RBAC1 则是在 RABC0 的基础上引入了角色继承,让角色有了上下级关系。
在本系列前面的文章中,松哥也曾多次向大家介绍过 Spring Security 中的角色继承。
RBAC2 也是在 RBAC0 的基础上进行扩展,引入了静态职责分离和动态职责分离。
要理解职责分离,我们得先明白角色互斥。
在实际项目中,有一些角色是互斥的,对立的,例如财务这个角色一般是不能和其他角色兼任的,否则自己报账自己审批,岂不是爽歪歪!
通过职责分离可以解决这个问题:
静态职责分离
在设置阶段就做好了限制。比如同一用户不能授予互斥的角色,用户只能有有限个角色,用户获得高级权限之前要有低级权限等等。
动态职责分离
在运行阶段进行限制。比如运行时同一用户下5个角色中只能同时有2个角色激活等等。
将 RBAC1 和 RBAC2 结合起来,就形成了 RBAC3。
我们日常见到的很多权限模型都是在 RBAC 的基础上扩展出来的。
例如在有的系统中我们可以见到用户组的概念,就是将用户分组,用户同时具备自身的角色以及分组的角色。
到此,相信大家对“rbac是什么”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。