最近,因为项目需要设计并实现一个权限管理模块像素游戏素材,所以特地整理总结了RBAC的一些知识。
目前最常用的权限管理模型是RBAC(基于角色的访问控制)模型。 本文主要介绍基于RBAC的权限管理系统。 我将从两个部分来介绍:什么是RBAC以及如何设计RBAC。
一、什么是RBAC 一、RBAC模型概述
RBAC模型(Role-Based Access Control)模型是20世纪90年代发展起来的新模型,但事实上,这种思想在20世纪70年代的多用户计算时期就已经被提出了。 ,直到 20 世纪 90 年代中后期,RBAC 才受到研究界的一些关注,并提出了多种类型的 RBAC 模型。 其中,美国乔治梅森大学信息安全技术实验室(LIST)提出的RBAC96模型最具代表性,并得到了普遍认可。
RBAC认为权限授权的过程可以抽象概括为:Who是否可以对What进行How访问操作,以及判断这个逻辑表达式是否为True的解决过程,即将权限问题转化为What和How问题, Who、What 和 How 构成了访问权限三元组。 具体理论请参考RBAC96论文。 这里我们就不详细介绍了,让大家有个印象。
2.RBAC的组成
RBAC模型由三个基本组成部分:用户、角色和权限。
RBAC通过定义角色的权限并授予用户一定的角色来控制用户的权限角色权限表设计,实现了用户和权限的逻辑分离(与ACL模型不同),极大地方便了权限的管理。
在解释之前,我先介绍一些名词:
它们之间的关系如下图所示:
例如下图,管理员和普通用户被授予不同的权限。 普通用户只能修改和查看个人信息,不能创建用户或冻结用户。 管理员可以执行所有操作,因为他们被授予所有权限。
例如下图,管理员和普通用户被授予不同的权限。 普通用户只能修改和查看个人信息,不能创建用户或冻结用户。 管理员可以执行所有操作,因为他们被授予所有权限。
3. RBAC支持的安全原则
RBAC支持三个众所周知的安全原则:最小权限原则、职责分离原则、数据抽象原则
4. RBAC的优点和缺点
(一)优点:
(2)缺点:
5. RBAC的四种模型
(1)RBAC0
RBAC0是最简单、最原始的实现游戏动态,也是其他RBAC模型的基础。
在该模型中,用户和角色之间可以存在多对多的关系,即一个用户在不同的场景下可以具有不同的角色。 例如角色权限表设计,项目经理也可能是团队领导或架构师。 同时,每个角色至少拥有一项权限。 在该模型下,用户和权限是分离且独立的,使得权限的授权和认证更加灵活。
(2)RBAC1
基于RBAC0模型,引入角色之间的继承关系,即有上级角色和下级角色的区分。
角色之间的继承关系可以分为一般继承关系和受限继承关系。 一般继承关系只要求角色继承关系是绝对偏序关系,允许角色之间多重继承。 受限继承关系进一步要求角色继承关系为树形结构,以实现角色之间的单继承。
该模型适用于层次清晰的角色,可用于对角色进行分组和分层。
(3)RBAC2
RBAC2基于RBAC0模型,实现角色访问控制。
RBAC2 中的一个基本限制是角色互斥的限制。 互斥角色是指两个角色各自的权限可以互相限制。 对于该类型的角色,用户在某一活动中只能被分配其中一种角色,而不能同时获得使用两种角色的权利。
该模型有以下约束:
2.如何设计RBAC
本节将介绍基于RBAC模型设计权限系统的功能模块组成、流程和数据库设计。
1.RBAC的功能模块
2.RBAC执行流程
3.RBAC数据库设计
文章来源:https://blog.csdn.net/lvshuocool/article/details/93968143