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

基本思路:

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

权限管理系统(一):权限系统与RBAC模型概述的更多相关文章

  1. 权限系统与RBAC模型概述

    为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3793894.html ...

  2. 权限系统与RBAC模型概述[绝对经典]

    0. 前言 一年前,我负责的一个项目中需要权限管理.当时凭着自己的逻辑设计出了一套权限管理模型,基本原理与RBAC非常相似,只是过于简陋.当时google了一些权限管理的资料,从中了解到早就有了RBA ...

  3. [转]权限系统与RBAC模型概述[绝对经典]

    转自:https://blog.csdn.net/yangwenxue_admin/article/details/73936803 0. 前言 一年前,我负责的一个项目中需要权限管理.当时凭着自己的 ...

  4. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(20)-权限管理系统-根据权限获取菜单

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(20)-权限管理系统-根据权限获取菜单 不知不觉到20讲,真是漫长的日子,可惜最近工作挺忙,要不可以有更多 ...

  5. 权限管理系统(四):RBAC权限模型分类介绍

    RBAC是Role-BasedAccess Control的英文缩写,意思是基于角色的访问控制.RBAC认为权限授权实际上是Who.What.How的问题.在RBAC模型中,who.what.how构 ...

  6. 权限管理RBAC模型概述

    一.什么是RBAC模型 RBAC模型(Role-Based Access Control:基于角色的访问控制)模型是比较早期提出的权限实现模型,在多用户计算机时期该思想即被提出,其中以美国George ...

  7. 通用权限管理系统之权限菜单zTree树的展示及移动的处理方法

    在通用权限管理系统中,有很多数据结构是有父子关系的,如组织机构,部门,权限菜单等,在展示的时候,大多数是通过zTree树的形式展现的,如下: 权限菜单展示 这种数据后台输出比较容易处理,参考如下获取某 ...

  8. 权限管理系统(五):RBAC新解,基于资源的权限管理

    本文讨论以角色概念进行的权限管理策略及主要以基于角色的机制进行权限管理是远远不够的.同时我将讨论一种我认为更好的权限管理方式. 1.什么是角色 当说到程序的权限管理时,人们往往想到角色这一概念.角色是 ...

  9. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(24)-权限管理系统-将权限授权给角色

    系列目录 过了个年回来,回顾一下,我们上次讲了角色管理,我们这一次来讲将权限授权给角色,这一节也是大家比较关心的.因为我们已经跑通了整个系统,知道权限的流转,我们先来看一张图 这张图主要分要3块,角色 ...

随机推荐

  1. iptables日志与limit参数

    在处理工作问题的时候需要查看防火墙的日志,由于默认日志都是在系统日志里/var/log/messages里面.需要对rsyslog做设置. 首先编辑配置文件/etc/rsyslog.conf如下: # ...

  2. [android错误] requires API level *

    Call requires API level (current min ): android.content.res.Resources#getBoolean 参考文档: http://stacko ...

  3. error loading /system/media/audio/ui/Effect_Tick.ogg

    问题原因: 同一个AVD,调试了很多个项目,产生了N多个log文件,这些文件可能产生了影响. 解决办法: 新建一个AVD即可.

  4. wepy - 与原生有什么不同(watcher监听器.)

    <style> </style> <template> <view>监听值:{{num}}</view> </template> ...

  5. PHP-7

    PHP 7+ 版本极大地改进了性能,在一些WordPress基准测试当中,性能可以达到PHP 5.6的3倍. PHP 7+ 版本新加特性如下表所示: 序号 内容 1 PHP 标量类型与返回值类型声明 ...

  6. 关于csdn博客中案例效果的动态演示

    在曾经一篇博文中,网友评论说要是案例效果是动态演示的就好了,我认为说的非常是有道理.由于一个简单的截图不能非常好的展示案例效果.要是有一张gif图能动态的播放案例效果就再好只是了.在这里提供一个小软件 ...

  7. Showing a tooltip

    We can provide a balloon help for any of our widgets. #!/usr/bin/python # -*- coding: utf-8 -*- &quo ...

  8. DevExpress.XtraLayout.LayoutControl 动态添加控件

    // Create an item within a specified group,// bound to a specified data field with the specified edi ...

  9. Oracle快速克隆安装

    Oracle的家目录进行快速克隆,对同类型机器配置很高效的! 01.确认你在克隆数据库时,原数据库已经关闭 sqlplus   /   as sysdba; shutdown immediate ; ...

  10. iOS利用SDWebImage实现缓存的计算与清理

    概述 可以仅仅清理图片缓存, 也可以清理所有的缓存文件(包括图片.视频.音频等). 详细 代码下载:http://www.demodashi.com/demo/10717.html 一般我们项目中的缓 ...