RBAC----基于角色的访问权限控制
RBAC是什么?
基于角色的权限访问控制(Role-Based Access Control) 作为传统访问控制(自主访问、强制访问)的有前景的代替 受到了广泛的关注。
在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。极大地简化了权限的管理。
RBAC支持三个著名的安全原则:最小权限原则、责任分离原则、数据抽象原则。
(1)因为RBAC可以将用户的角色配置成用户完成任务所需的最小的权限集。
(2)可以通过调用相互独立互斥的角色来共同完成敏感的任务。
(3)通过权限的抽象来体现数据抽象原则。eg:财务操作借款、存款等抽象权限,而不实际操作 系统提供的读、写、执行权限。
RBAC的关注点在于 Role和User、Permission的关系。
成为User assignment(UA)和 permission assignment(PA)关系的左右两边都是Many-to-Many关系。即多对多关系。
session在RBAC中是比较隐晦的一个元素。每一个session是一个映射,一个用户到多个role的映射。当一个用户激活他所有角色的一个子集的时候,建立一个session。每个session和单个的user关联,并且每个user可以关联到一个或者多个session。
Group概念
在RBAC系统中,User实际上在扮演角色(Role),可以用Actor来取代User。同时RBAC引入了Group概念。Group可以看做Actor。User就对应到具体的一个人。引入的Group概念,可以解决多人相同角色,还可以解决组织机构的授权问题。(RBAC中的Group与GBAC中的Group不同:GBAC多用于操作系统中,他的Group直接和权限相关联,实际上RBAC也借鉴了GBAC的一些概念。)
RBAC认为授权实际就是who,what,how三者之间的关系
即who对what进行how的操作。
Who,权限的拥用者或主体(如Principal、User、Group、Role、Actor等等);
what,权限针对的对象或资源(Resource、Class) ;
How,具体的权限(Privilege,正向授权与负向授权)。
即我们通过给角色授权,然后将附有权利的角色施加到某个用户身上,这样用户就可以实施相应的权利了。通过中间角色的身份,是权限管理更加灵活:角色的权利可以灵活改变,用户的角色的身份可以随着场所的不同而发生改变等。这样这套RBAC就几乎可以运用到所有的权限管理的模块上了。
RBAC模型分类
最新文章
- VS工具如何新建筛选器
- PetaPoco利用ODP.NET Managed Driver连接Oracle
- 服务器重启后导致访问ArcServer地图服务须登录
- http://tool.oschina.net 在线API文档库java jquery ,php,很全的文档库
- Linux下MySQL数据库常用基本操作 一
- Java api 入门教程 之 JAVA的SYSTEM类
- 软件工程个人作业-Week2
- 【转】Java中如何遍历Map对
- Visual Studio Code尝试体验
- 类加载器子系统——JVM之四
- iOS 10 创建iMessage App
- BarTender 通过ZPL命令操作打印机打印条码, 操作RFID标签
- angular4.0如何引入外部插件2:declare方案
- android 自定义Viewpager实现无限循环
- 引入UEditor后其他列表项不显示
- Linux初次修改环境变量
- 万恶之源 - Python生成器
- 25个可遇不可求的jQuery插件
- SDUT 2623 The number of steps (概率)
- linux下mysql数据库导入导出命令