- 浏览: 912967 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (537)
- Java SE (114)
- Struts (18)
- Hibernate (25)
- Spring (3)
- Page_Tech (41)
- Others (87)
- Database (29)
- Server (24)
- OpenSource_Tools (15)
- IDE_Tool (22)
- Algorithm (28)
- Interview (22)
- Test (28)
- Hardware (1)
- Mainframe (25)
- Web application (4)
- Linux (3)
- PHP (17)
- Android (1)
- Perl (6)
- ubuntu (1)
- Java EE (9)
- Web Analysis (5)
- Node.js (2)
- javascript (2)
最新评论
-
一键注册:
request.getRequestURL()和request.getRequestURI() -
SuperCustomer:
...
SED的暂存空间和模式空间 -
juyo_ch:
讲得挺好理解的,学习了
java 死锁及解决 -
chinaalex:
最后一题答案正确,但是分析有误.按照如下过程,上一行为瓶,下一 ...
zz智力题 -
liaowuxukong:
多谢博主啦,弱弱的了解了一点。
C++/Java 实现多态的方法(C++)
基于RBAC的权限设计模型:
1 RBAC 介绍
RBAC 模型作为目前最为广泛接受的权限模型。
NIST (The National Institute of Standards and Technology,美国国家标准与技术研究院)标准RBAC模型由4个部件模型组成,这4个部件模型分别是基本模型RBAC0(Core RBAC)、角色分级模型RBAC1(Hierarchal RBAC)、角色限制模型RBAC2(Constraint RBAC)和统一模型RBAC3(Combines RBAC)[1]。RBAC0模型如图1所示。
图表 1 RBAC 0 模型
l RBAC0 定义了能构成一个RBAC控制系统的最小的元素集合
在RBAC之中,包含用户users(USERS)、角色roles(ROLES)、目标objects(OBS)、操作operations(OPS)、许可权permissions(PRMS)五个基本数据元素,权限被赋予角色,而不是用户,当一个角色被指定给一个用户时,此用户就拥有了该角色所包含的权限。会话sessions是用户与激活的角色集合之间的映射。RBAC0与传统访问控制的差别在于增加一层间接性带来了灵活性,RBAC1、RBAC2、RBAC3都是先后在RBAC0上的扩展。
l RBAC1 引入角色间的继承关系
角色间的继承关系可分为一般继承关系和受限继承关系。一般继承关系仅要求角色继承关系是一个绝对偏序关系,允许角色间的多继承。而受限继承关系则进一步要求角色继承关系是一个树结构。
l RBAC2 模型中添加了责任分离关系
RBAC2 的约束规定了权限被赋予角色时,或角色被赋予用户时,以及当用户在某一时刻激活一个角色时所应遵循的强制性规则。责任分离包括静态责任分离和动态责任分离。约束与用户-角色-权限关系一起决定了RBAC2模型中用户的访问许可。
l RBAC3 包含了RBAC1和RBAC2
既提供了角色间的继承关系,又提供了责任分离关系。
建立角色定义表。定出当前系统中角色。
因为有继承的问题,所以角色体现出的是一个树形结构。
2 权限设计:
配置资源以及资源的操作 : 这里资源可以定义为一个通用的资源模型。提供通用的资源统一接口。
数据库 ER 图:
关系图:
3 分析:
根据以上的类关系图和ER图可以看出。整个权限可以抽象为五个对象组成。
OrgBean : 用于描述org模型。
Role : 用于描述角色。
Permission : 用于描述权限。
Resource : 用于描述资源。
Operation : 用于描述操作。
其中Permission中有Resource , Operation 的聚合,资源和操作组成权限。
Role 和 Permission 都有自包含。因为设计到权限的继承。
资源Resource 也可能出现一颗树形结构,那资源也要有自包含。
思想 :
权限系统的核心由以下三部分构成: 1. 创造权限, 2. 分配权限, 3. 使用权限,然后,系统各部分的主要参与者对照如下: 1. 创造权限 - Creator 创造, 2. 分配权限 - Administrator 分配, 3. 使用权限 - User :
1. Creator 创造 Privilege , Creator 在设计和实现系统时会划分,一个子系统或称为模块,应该有哪些权限。这里完成的是 Privilege 与 Resource 的对象声明,并没有真正将 Privilege 与具体 Resource 实例联系在一起,形成 Operator 。
2. Administrator 指定 Privilege 与 Resource Instance 的关联 。在这一步, 权限真正与资源实例联系到了一起, 产生了 Operator ( Privilege Instance )。 Administrator 利用 Operator 这个基本元素,来创造他理想中的权限模型。如,创建角色,创建用户组,给用户组分配用户,将用户组与角色关联等等 ... 这些操作都是由 Administrator 来完成的。
3. User 使用 Administrator 分配给的权限去使用各个子系统。 Administrator 是用户,在他的心目中有一个比较适合他管理和维护的权限模型。于是,程序员只要回答一个问题,就是什么权限可以访问什么资源,也就是前面说的 Operator 。程序员提供 Operator 就意味着给系统穿上了盔甲。 Administrator 就可以按照他的意愿来建立他所希望的权限框架 可以自行增加,删除,管理 Resource 和 Privilege 之间关系。可以自行设定用户 User 和角色 Role 的对应关系。 ( 如果将 Creator 看作是 Basic 的发明者, Administrator 就是 Basic 的使用者,他可以做一些脚本式的编程 ) Operator 是这个系统中最关键的部分,它是一个纽带,一个系在 Programmer , Administrator , User 之间的纽带。
4 权限API
getPermissionByOrgGuid(String orgGuid )
通过传入一个org的Guid , 拿到当前这个org对象都具有那些访问权限。
getSourcePermissionByOrgGuid(String orgGuid , String resouceGuid)
通过传入一个org的Guid 和 一个资源的Guid , 返回改Org对当前这个资源的访问权限。
getPermissionByResourceGuid(String resource)
通过传入一个资源的Guid , 得到当前资源下都有那些权限定义。
havingHeritPermission(String orgGuid , String resouceGuid) : Boolean
传入一个orgGuid, 资源GUID ,查看改OrgGuid下对资源是否有向下继承的权限。这里继承是资源的继承。即对父栏目有权限,可以继承下去对父栏目下的子栏目同样有权限。
havingPermission(String orgGuid , String resourceGuid) : Boolean
判断某Org对某一资源是否用权限。
以上是粗粒度的权限API 。 以下为细粒度的权限:
getOperationByPermission(String permissionGuid)
通过permission 的Guid 得到该permission 的所有有效操作。
getOperationByGuid(String permissionGuid , String resourceGuid)
通过permision的Guid , 资源的Guid 得到该资源下所有的有效操作。
screeningOpreationByGuid (String permissionGuid , String resourceGuid , String orgGuid)
通过permission , resource , org的Guid 得到改Org对这一资源的有效操作。
hasOperation(String operationGuid) : boolean
通过传入的operationGuid 返回是否具有操作权限。
5 权限的实现:
1 .表单式认证,这是常用的,但用户到达一个不被授权访问的资源时, Web 容器就发
出一个 html 页面,要求输入用户名和密码。
2 .用 Filter 防止用户访问一些未被授权的资源, Filter 会截取所有 Request/Response ,
然后放置一个验证通过的标识在用户的 Session 中,然后 Filter 每次依靠这个标识来决定是否放行 Response 。
这个模式分为:
Gatekeeper :采取 Filter 或统一 Servlet 的方式。
Authenticator : 在 Web 中使用 JAAS 自己来实现。
Filter 拦截只是拦截该用户是否有访问这个页面,或这一资源的权限。真正做到显示后拦截是在应用程序内部去做。
做显示拦截提供API , 标签这两种方式。
发表评论
-
iPhone5s插件推荐 越狱后必装的50个插件
2014-12-31 16:58 15591. Activator (没有之一的强大手势操作软件)2. ... -
JS automation 环境迁移备注
2014-11-15 11:17 0此次迁移涉及的问题记录如下: 1) Jenkins 直接把 ... -
MacOS 怎么写NFS移动硬盘
2014-11-14 19:13 26971、打开命令行终端。 2、插上移动硬盘,这时候你在Find ... -
How can I resize a partition with Disk Utility (Bottom-up)
2014-10-10 14:30 472Create a new volume in the bla ... -
Outlook 邮件提醒长期显示
2012-08-30 10:38 1348I thought it was one of th ... -
chrome 背景色的设置
2012-07-17 09:56 3019最近换了浏览器,开始喜欢上chrome。 为了保护眼睛 ... -
日常生活中练习右脑
2012-07-12 10:16 1254成年人在日常琐细的生活中,同样可以采取各种方法锻炼右脑。 ... -
大公司面试集锦
2012-06-18 10:23 1364微软十五道面试题 1、有一个整数数组,请求出两两之差绝对值最 ... -
商务英语中的委婉表达
2012-06-18 10:19 12551. 委婉: 1) 动词:think、hope、re ... -
放松颈椎的几个动作
2012-05-29 12:41 1187随时放松颈部肌肉 ... -
drupal简单的体验
2012-05-24 15:41 875第一步: 到 drupal.org下下载最新的Drupal ... -
HtmlParser进行解析原理
2012-05-23 13:48 1167这两天准备做一些网站编程的工作,于是对HtmlParse小研究 ... -
使用HtmlParser提取HTML文本块
2012-05-23 13:46 1460听人介绍说HtmlParser(Java版本)在网页预处理 ... -
[zz] Opencms vs Magnolia
2012-05-22 10:35 2005最近一直在挑选CMS,Opencms和Magnolia是考察的 ... -
面向对象的三个基本特征
2012-04-25 14:56 814面向对象的三个基本特征是:封装、继承、多态。 ... -
Maven vs Ant
2012-04-23 14:35 1191Ant 将提供了很多可以重用的task,例如 copy, mo ... -
zz智力题
2012-03-26 22:50 12631、有两根不均匀分布 ... -
几种开源Portal的简单介绍分析
2012-02-21 22:42 2446主要包括:Pluto,Liferay,eXo,Jetsp ... -
Portal top ten
2012-02-21 22:37 992TOP1 独立网店系统 Sh ... -
英文面试须知
2012-02-16 15:11 978英语面试需要好好准备 ...
相关推荐
总结来说,基于RBAC的权限管理数据库表设计涵盖了角色、权限、用户、角色-权限关联、用户-角色关联等多个核心组件,通过这些组件的组合,可以构建出一个强大且易于维护的权限管理体系。在实际应用中,还可以根据业务...
基于RBAC(Role-Based Access Control,基于角色的访问控制)的权限设计是一种广泛应用的权限管理模型,它以角色为中心,通过角色与权限的关联,实现用户对资源的访问控制。NIST定义了四种RBAC模型:RBAC0、RBAC1、...
基于RBAC(Role-Based Access Control,基于角色的访问控制)的权限管理系统是一种广泛采用的解决方案,它以角色为核心,实现了用户与权限的间接映射,提高了管理效率并降低了复杂性。下面将详细介绍RBAC模型及其在...
综合以上信息,这个基于RBAC的权限管理系统采用了分层架构设计,实现了用户、角色和权限的灵活配置,以支持MIS系统的安全访问控制。系统采用C#语言开发,并且依赖于.NET框架,数据存储可能使用的是SQL Server数据库...
基于RBAC(Role-Based Access Control,基于角色的访问控制)的通用权限管理构件是一种广泛应用于企业级应用的解决方案,它通过角色来管理和控制用户的访问权限。下面将详细介绍这个系统以及与其相关的技术。 **...
这是一个RBAC权限管理系统,即基于角色的用户权限控制,,使用springboot框架开发,UI使用的是layui。。 演示地址:http://116.196.66.248:8090/page/index 欢迎大家下载。。。。另外,建议使用IDEA导入项目。。
在IT行业中,权限管理是系统安全的关键组成部分,而基于RBAC(Role-Based Access Control,基于角色的访问控制)的权限管理模型是一种广泛应用的解决方案。RBAC模型通过将用户权限与角色关联,使得权限分配更加灵活...
基于RBAC(Role-Based Access Control,基于角色的访问控制)的权限设计模型是一种广泛采用的解决方案,它有效地解决了权限分配的问题,提高了系统的灵活性和可管理性。下面我们将详细探讨基于RBAC的权限设计模型...
RBAC权限设计模型 RBAC(Role-Based Access Control,基于角色的访问控制)是一种基于角色的权限设计模型,旨在解决权限管理的复杂性和灵活性问题。RBAC模型认为权限授权实际上是Who、What、How三个问题的结合,也...
"基于RBAC权限模型搭建的高效智能权限管理系统.pdf" 本文档介绍了基于RBAC权限模型搭建的高效智能权限管理系统,旨在确保系统信息的安全性。该系统主要包含用户信息表、角色表、权限表等模块,依托Web的计算算法,...
通用RBAC权限设计及其数据权限和分库分表 支持服务限流、动态路由、灰度发布、 支持常见登录方式, 多系统SSO登录 基于 Spring Cloud Hoxton 、Spring Boot 2.3、 OAuth2 的RBAC权限管理系统 提供对常见容器化支持 ...
本文将深入探讨基于RBAC的权限管理系统的实现原理、设计思路以及关键组件。 首先,RBAC模型主要由三个核心概念构成:用户(User)、角色(Role)和权限(Permission)。用户通过扮演不同的角色来获取相应的权限。...
RBAC 权限控制 设计文档 演示文稿 基于RBAC的权限控制系统设计演示文稿 以学校教学系统为实例
### RBAC权限体系设计UML解析 #### 一、引言 在当今信息化时代,确保信息安全及合理使用已成为各类组织的重要任务之一。基于角色的访问控制(Role-Based Access Control,简称RBAC)作为一种广泛应用于企业管理信息...
资源的权限设计中,需要考虑资源实例的权限相关性。例如,若在企业管理信息系统中,不同区域的部门需要对客户资料进行操作,那么资源实例(客户资料)的权限应与访问主体(区域)关联。在这种情况下,资源实例包含的...
这个名为"Go-基于GinCasbinAntDesignReact的RBAC权限管理脚手架"的项目,旨在为开发者提供一套完整的解决方案,以高效、安全地实现用户权限控制。 首先,我们来看看Gin框架。Gin是一个轻量级的Web框架,它基于...
在探讨ASP.NET+MVC下基于RBAC(Role-Based Access Control)权限认证的设计与实现时,我们首先要理解几个核心概念:ASP.NET MVC框架、RBAC模型以及它们在现代Web应用程序中的应用。 ### ASP.NET MVC框架 ASP.NET ...
本源码提供了一个基于Spring Boot 3.2的微服务RBAC权限管理系统设计。项目包含591个文件,其中包括363个Java源文件、71个JavaScript文件、42个XML文件、13个YAML文件、11个TTF字体文件、11个WOFF字体文件、10个CSS...