1、RBAC是什么?
Role-Based Access Control,中文意思是:基于角色(Role)的访问控制。这是一种广泛应用于计算机系统和网络安全领域的访问控制模型。
简单来说,就是通过将权限分配给➡角色,再将角色分配给➡用户,来实现对系统资源的访问控制。一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。具体而言,RBAC模型定义了以下几个核心概念:
角色(Role):角色是指在系统中具有一组相关权限的抽象概念,代表了用户在特定上下文中的身份或职能,例如管理员、普通用户等。
权限(Permission):权限是指对系统资源进行操作的许可,如读取、写入、修改等。权限可以被分配给角色。
用户(User):用户是指系统的实际使用者,每个用户可以被分配一个或多个角色。
分配(Assignment):分配是指将角色与用户关联起来,以赋予用户相应的权限。
RBAC 认为授权实际上是Who 、What 、How 三元组之间的关系,也就是Who 对What 进行How 的操作,也就是“主体”对“客体”的操作。
Who:是权限的拥有者或主体(如:User,Role)。
What:是操作或对象(operation,object)。
How:具体的权限(Privilege,正向授权与负向授权)。
通过RBAC模型,可以实现灵活且易于管理的访问控制策略。管理员可以通过分配和调整角色,来管理用户的权限。这种角色层次结构可以帮助简化权限管理,并确保用户只有所需的权限。
RBAC模型广泛应用于系统安全、数据库管理、网络管理等领域,它提供了一种可扩展、可管理的访问控制机制,有助于保护系统资源免受未经授权的访问和潜在的安全威胁。
2、为什么要使用RBAC模型?
因为当用户的数量非常大时,要给系统每个用户逐一授权,是件非常烦琐的事情。这时,就需要给用户分组,每个用户组内有多个用户。除了可给用户授权外,还可以给用户组授权。这样一来,用户拥有的所有权限,就是用户个人拥有的权限与该用户所在用户组拥有的权限之和。
在应用系统中,权限表现成什么?对功能模块的操作,对上传文件的删改,菜单的访问,甚至页面上某个按钮、某个图片的可见性控制,都可属于权限的范畴。有些权限设计,会把功能操作作为一类,而把文件、菜单、页面元素等作为另一类,这样构成“用户-角色-权限-资源”的授权模型。而在做数据表建模时,可把功能操作和资源统一管理,也就是都直接与权限表进行关联,这样可能更具便捷性和易扩展性。
举个例子:登录功能的用户-角色-权限关系
图片来源:RBAC角色权限设计-阿里云开发者社区
3、RBAC的适用场景
(1)企业组织架构:在企业中,RBAC可用于根据员工的职位、角色和职责来管理访问权限。不同部门的员工可以被分配到不同的角色,以便根据其工作职能限制他们对系统和资源的访问。
(2)应用程序和系统访问控制:RBAC可用于管理应用程序和系统中的用户访问权限。管理员可以根据用户的角色将其分配到适当的角色,并定义角色的权限集合。这样,系统可以确保用户只能访问其所需的功能和数据,从而提高安全性。
(3)多租户系统:在多租户环境中,RBAC模型可以用于对不同租户之间的访问进行隔离和管理。每个租户可以有自己的角色和权限定义,以确保其数据和资源只能被其授权的用户访问。
(4)医疗保健:在医疗保健领域,RBAC可用于管理医生、护士和管理员等不同角色的访问权限。例如,医生可以被分配到具有病人记录和处方访问权限的角色,而护士只能访问病人记录。
(5)金融和银行:在金融和银行领域,RBAC可用于管理不同用户角色的访问权限,例如客户、经理和审计人员。通过RBAC,可以确保客户只能访问其自己的账户信息,而经理和审计人员可以拥有更广泛的访问权限。
(6)云计算和网络服务提供商:RBAC可用于管理云计算平台和网络服务提供商中的用户访问权限。不同用户可以被分配到不同的角色,以限制其对云资源、虚拟机或网络设备的操作。
RBAC模型可以应用于各种不同的领域和系统,以提供更安全、灵活和可管理的访问控制机制。根据特定的需求和环境,可以根据RBAC模型进行定制和扩展。
4、RBAC流程图
5、RBAC各模块功能
图片来源:【php】RBAC 管理权限
6、访问控制流程
图片来源:【php】RBAC 管理权限
7、数据库设计及相关表结构
主外键关联的
非主外键(虚拟)
8、RBAC模型的JPA简单实现-单表及多表查询
详见以下地址:RBAC模型的JPA简单实现-单表及多表查询-优快云博客
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.youkuaiyun.com/m0_62006803/article/details/133962328