权限管理系统(一):权限系统与RBAC模型概述

RBAC模型概述

RBAC即角色访问控制(Role Based Access Control)

RBAC认为权限授权实际上是Who、What、How的问题。在RBAC模型中,who、what、how构成了访问权限三元组,也就是“Who对What(Which)进行How的操作”。
Who:权限的拥用者或主体(如Principal、User、Group、Role、Actor等等)
What:权限针对的对象或资源(Resource、Class)。
How:具体的权限(Privilege,正向授权与负向授权)。

RBAC模型特征

基于角色的访问控制方法(RBAC)的显著的两大特征是:

1.由于角色/权限之间的变化比角色/用户关系之间的变化相对要慢得多,减小了授权管理的复杂性,降低管理开销。

2.灵活地支持企业的安全策略,并对企业的变化有很大的伸缩性。

RBAC支持的安全原则

最小权限原则(即细粒度控制原则)

RBAC 可将其角色配置成其完成任务所需要的最小权限集;

责任分离原则

通过调用相互独立互斥的角色来共同完成敏感的任务而体现,如要求一个计帐员和财务管理员一起参与同一个过帐;

数据抽象原则

通过权限的抽象来体现,如财务操作用借款、存款等抽象权限。

标准 RBAC 模型

NIST (美国国家标准与技术研究院)标准 RBAC 模型由4个部件模型组成,分别是基本模型RBAC0(Core RBAC)角色分级模型RBAC1(Hierarchal RBAC)角色限制模型RBAC2(Constraint RBAC)统一模型RBAC3(Combines RBAC)
RBAC0 模型如图1所示:
RBAC0 定义了能构成一个 RBAC 控制系统的最小的元素集合:
  • RBAC 定义了 五个基本数据元素
    1. 用户 users(USERS)
    2. 角色 roles(ROLES)
    3. 目标 objects(OBS)
    4. 操作 operations(OPS)
    5. 许可权 permissions(PRMS)
  • RBAC0 业务规则有:
    • 一个用户可以对应多个角色,一个角色也可以分配给多个用户;
    • 一个角色可以有多个许可权,一种许可权则只与一个角色对应;
    • 用户可以发起会话,会话中可以激活多个角色来获取许可权;
    • 用户、角色、许可权全部由超级管理员创建与指派;
    • 一个用户拥有多个角色时,高优先级的角色权限覆盖低优先级的角色权限。
RBAC1(引入角色继承关系)、RBAC2(引入责任分离关系)、RBAC3 (角色继承+责任分离)都是先后在 RBAC0 上的扩展。

RBAC 核心对象模型

授权模型:用户-角色-权限
 
核心动作:
  • 创造权限
  • 分配权限
  • 使用权限
 
核心动作的主要参与者:
  • Creator 创造权限:这里完成的是 Privilege 与 Resource 的对象声明;
  • Administrator 分配权限:把 Privilege 与 Resource Instance 真正关联到一起,产生了 Operator (Privilege Instance)。Administrator 利用 Operator 这个基本元素,来创造他理想中的权限模型,如创建角色,创建用户组,给用户组分配用户,将用户组与角色关联等;
  • User 使用权限

数据库表设计

1,用户表 保存系统用户信息,如张三、李四,字段可以有id、name、fullname、email、phone、……
2,角色表 保存角色信息,如学生、管理员,字段有id、name、……
3,权限表 保存系统的权限信息,可定义系统哪些模块公开,或者什么时段可访问,字段有id,权限名
4,用户角色表 关联用户和角色的关系表,如张三-学生,李四-管理员,字段有id、用户id、角色id,根据用户就知道所属的角色
5,角色权限表 关联角色和权限的关系表 字段信息:id,角色id,权限id
6,用户权限表 用于单独针对用户赋权,字段信息: id,用户id,  权限id
7,菜单表  总体菜单信息  字段信息:菜单id,菜单fid,菜单名,菜单代码(用于同级、同目录菜单的排序),菜单类型(0-目录 1-模块),备注,目标位置
8,权限菜单表 用于关联权限和菜单的关系表,字段信息:id,菜单id,权限id

 

基本思路:

用户跟角色关联
角色跟权限关联
权限跟菜单关联

转载于:https://www.cnblogs.com/shamo89/p/6684578.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值