什么是RBAC
- 概述:RBAC:Role-Based Access Control
- 详解:什么是基于⻆⾊的访问控制
- 具体实现:如何设计RABC模型
- 其他介绍:RBAC支持三个著名的安全原则
概述:RBAC:Role-Based Access Control
RBAC:Role-Based Access Control
百度翻译:基于角色的访问控制
简单将就是权限模型,您可以学习并使用到系统中来实现系统中的权限控制
详解:什么是基于⻆⾊的访问控制
什么是基于⻆⾊的访问控制(RBAC:Role-Based Access Control)?
有⼈登录您的计算机系统。那个⼈能做什么?如果您使⽤ RBAC 技术,那么该问题的答案取决于该⼈的⻆⾊
。
RBAC 语⾔中的⻆⾊
通常是指⼀组具有某些特征的⼈,例如:部⻔ / 地点 / 资历级别 / ⼯作职责
定义⻆⾊后,您可以分配权限。这些可能涉及:
- Access(访问)。这个⼈能看到什么?
- Operations(操作)。这个⼈能读到什么?这个⼈能写什么?该⼈可以创建或删除⽂件吗?
- Sessions(会话)。该⼈可以在系统中停留多⻓时间?什么时候可以登录?登录什么时候过期?
美国国家标准与技术研究院为RBAC定义了四级:
– Level 0, 扁平的:这是最简单的 RBAC 形式。员⼯使⽤⻆⾊来获得权限。也是工作中用到最多的
– 第 1 级,分层的:这建⽴在 Flat RBAC 规则之上,并增加了⻆⾊层次结构。例如销售岗分为销售一线人员,销售组长,销售经理,销售总监
– 第 2 级,受约束的:这建⽴在分层 RBAC 之上,并增加了职责分离。例如:警察和罪犯角色同一个用户只能选择其中之一的角色,不可能同时为警察和罪犯的角色
– 第 3 级,对称的:这建⽴在受约束的 RBAC 模型之上,并添加了权限审查。实际使用的时候用户不可能只有一个角色分配,使用用户组可能更加实际,用户直接分配用户组的权限,用户组和角色关联
具体实现:如何设计RABC模型
如何设计RABC模型
- users(用户):每个用户都有唯一的UID识别,并被授予不同的角色
- roles(角色):不同角色具有不同的权限
- permissions(权限):访问权限,具体可以指菜单权限,按钮权限,数据访问权限
- user_roles(用户-角色映射):用户和角色之间的映射关系
- role_permissons(角色-权限映射):角色和权限之间的映射
**注意**
:上述只是简单的模型介绍,并非实际生产使用,请根据系统实际情况设计表结构
其他介绍:RBAC支持三个著名的安全原则
RBAC支持三个著名的安全原则:最小权限原则、责任分离原则和数据抽象原则
最小权限原则:RBAC可以将角色配置成其完成任务所需的最小权限集合
责任分离原则:可以通过调用相互独立互斥的角色来共同完成敏感的任务,例如要求一个计账员和财务管理员共同参与统一过账操作
数据抽象原则:可以通过权限的抽象来体现,例如财务操作用借款、存款等抽象权限,而不是使用典型的读、写、执行权限