Spring Security中最受欢迎的权限管理模型
我向您介绍了ACL,相关理论,并给出了完整的案例。我相信大家对ACL权限控制模型都有更好的了解。
在本文中,我想与您讨论另一个非常流行的权限管理模型,即RBAC。 1. RBAC简介RBAC(基于角色的访问控制)是基于角色的访问控制(基于角色的访问控制,RBAC),它是一种相对较新且广泛使用的权限控制机制,该机制不是直接将权限分配给用户,为角色分配权限。
RBAC权限模型按角色对用户进行分类,并通过用户角色确定用户是否对资源具有操作权限。 RBAC简化了用户和权限的管理。
它将用户与角色相关联,将角色与权限相关联,并将权限与资源相关联。此模型使用户授权管理非常简单且易于维护。
2. RBAC提出的权限和角色可以在1970年代初的商用计算机程序中找到,但是早期的程序相对简单,并且没有清晰,通用和公认的权限管理模型。 。
Ferraiolo和Kuhn的两个大兄弟在1992年提出了一个基于角色的通用访问控制模型(该模型似乎比Song Ge更旧),并首次提出RBAC许可模型来代替传统的MAC和DAC。访问控制方案,并解释RBAC中的相关概念。
Ferraiolo,Cugini和Kuhn于1995年扩展了1992年提出的权限模型。该模型的主要功能是所有访问都是通过角色完成的,而角色本质上是权限的集合,并且所有用户只能通过角色获得权限。
在组织内部,角色相对稳定,并且用户和权限众多,并且可能会迅速变化。因此,通过角色控制权限可以简化访问控制的管理和检查。
1996年,Sandhu,Coyne,Feinstein和Youman正式提出了RBAC模型,该模型以模块化的方式完善了RBAC,并在该理论的基础上提出了四种不同的RBAC0-RBAC3模型。如今,大多数信息技术供应商已将RBAC纳入其产品线。
除了常规的企业级应用程序外,RBAC还广泛用于医疗,国防和其他领域。目前,宋歌只能在互联网上找到有关RBAC的理论资料。
有兴趣的朋友可以看看。地址是:https://csrc.nist.gov/projects/Role-Based-Access-Control这里有中文信息的链接,欢迎留言。
3. RBAC最小权限的三个原则:为角色配置的权限是完成任务所需的最低权限集。职责分离:通过相互独立和互斥的角色共同完成任务。
数据抽象:RBAC支持的数据抽象程度反映了权限的抽象,与RBAC的实现细节有关。 4. RBAC模型分类谈到RBAC,我们必须从其模型分类开始。
4.1 RBAC0 RBAC0是用户,角色和权限的最简单模型。 RBAC0是RBAC权限模型的最核心部分,其他模型都是在此基础上构建的。
图片来自网络。在RBAC0中,用户可以具有多个角色,并且一个角色可以具有多个权限。
最终用户具有的权限是该用户具有的角色的权限的并集。 4.2 RBAC1RBAC1在RABC0的基础上引入了角色继承,使角色具有上级-下级关系。
图片来自网络在本系列的前几篇文章中,宋戈还向您介绍了Spring Security中的角色继承。 4.3 RBAC2RBAC2在RBAC0的基础上进行了扩展,引入了静态职责分离和动态职责分离。
要了解职责分离,我们必须首先了解角色是互斥的。在实际的项目中,有些角色是相互排斥和相对的。
例如,财务角色通常不能与其他角色同时执行。否则,自己报告和批准将是可耻的!此问题可以通过职责分离解决:在设置阶段限制静态职责分离。
例如,不能为同一用户授予互斥角色,该用户只能具有有限数量的角色,并且该用户必须具有低级别权限,然后才能获得高级权限,依此类推。在操作阶段限制了职责的动态分离。
例如,在运行时,同一用户下的5个角色中只有2个可以同时激活。 4.4 RBAC3组合RBAC1和RBAC2形成RBAC3。
图片来自网络5。扩展我们每天看到的许多许可模型都是基于RBAC扩展的。
为了。