基于角色访问控制已经成为业界一个标准,这方面的开源框架却不多,网上看了下Kasai是完成得比较好的一个,其它的RoleManager和RIWS,网上找到的资料较少,没有弄下来看过。
RBAC的主要思想在于,将人与权限解耦,通过角色来达到这一目的。事实上这一模型的实现并不复杂,Kasai整个框架看完之后也没觉得它有什么出彩的地方,相反,它对数据的控制是基于单条来实现,把用户的操作复杂化了。网上有篇介绍Kasai的文章,中间提到Kasai的object表没有提供添加的入口,实际上这张表存储的就是“数据”,系统中加入数据之后,就会在该表中加入相应的记录。在Kasai的基础上,作如下改进:
1、在SaaS架构下,为满足多租户的场景,对所有业务表加上租户ID;
这实际上是出于SaaS的考虑了,与RBAC关系不大。若系统不是基于SaaS架构可跳过。
2、角色继承、向下兼容、默认角色;
角色继承可方便管理员,每一个角色都要从零开始添加权限,这是管理员不愿意做的事情。继承有两个考虑:一是新建角色时继承,说白了就是一个初始时数据来源的问题,一旦角色创建完成后,其与父角色不再有任何关系;二是类似于java中的继承关系,父角色的变动影响子角色。但后者无论是使用上还是实现上,都不太适合。可考虑第一种方式。
向下兼容基于以下场景:某系统中存在三级组织架构,从上到下分为一,二,三级。某些业务场景下,一级管理员只能看到一级的数据,另一种场景下,一级管理员能看到本级及所有下级的数据。如果不从数据上加权限控制,则可通过角色的向下兼容处理。此时角色需要与部门相关联。
假定某部门下有五个角色,可将其交集的权限抽取出来成为该部门的默认角色,方便操作。
3、数据的权限控制
Kasai的数据权限控制是基于“数据即目标”,通过对每一条数据作权限分配来实现。这样只适用于演示,实际系统中没有可行性。一般来说应该通过对数据进行分类以达到权限控制,以公文为例,根据公文的密级来限定浏览者可看到的公文范围。考虑以下方案:
表名 字段名 规则
公文表 密级 {机密}=#role{管理员},#user{张三,李四};
以上规则表示,公文表中字段密级为机密的,只能由管理员或张三或李四查看,其它人无权限,转化为sql即为 where condition(实际业务条件) and (密级!=机密 or role=管理员 or 用户 in (张三,李四))
从上面可以看出,这种实现并不复杂,可将制定规则用界面展示出来供用户自定义操作。只需将界面展示得人性化一些,用户操作起来还是比较方便的。另外需要考虑的是,公文中的密级,存储的值可能是1,2,3(编码),但用户在定制时需要显示成机密,绝密,秘密等,这类工作需要定制或另起方案。
分享到:
相关推荐
【Kasai 2.0 开源RBAC框架详解】 Kasai是一个专注于认证与授权的开源框架,完全由Java语言编写,旨在为多用户应用程序提供高效且灵活的安全管理解决方案。RBAC(Role-Based Access Control)即基于角色的访问控制,...
【Kasai 开源身份验证与授权框架】 Kasai是一个专为Java开发的开源身份验证和授权框架,它的设计目标是提供一个强大且灵活的工具集,帮助开发者在应用程序中实现安全、精细化的权限控制。这个框架允许你定义和管理...
常见的访问控制模型有ACL(Access Control List)和RBAC(Role-Based Access Control)。在"Kasai(new)页面"中,可能会有各种页面和功能,每个都需要适当的访问控制策略。 5. **审计与日志**:为了追踪和审计用户的...
首先,文档标题提到了“机器人腹腔镜辅助Kasai手术治疗囊肿型胆道闭锁:国内首例报告”,这指的是在中国首次成功使用机器人手术系统辅助完成了一项治疗新生儿囊肿型胆道闭锁的Kasai手术。Kasai手术是一种针对胆道...
JetSpeed 是一个基于开源框架构建的企业级门户解决方案,具有高度的灵活性和可定制性;Pluto 是符合 JSR-168 规范的门户框架,适用于集成多种应用和服务。 - **JSP 标签库**:displaytag 通常与 Struts 结合使用,...
基于Kasai的安全管理系统毕业论文设计说明书 摘要: 本文档介绍了基于Kasai的安全管理系统的毕业论文设计,涵盖了系统的整体设计、开发技术介绍、需求分析、可行性分析、功能分析、业务流程分析、数据库设计、ER图...
5. **统一管理框架**:Solix的管理框架基于Java的JMX(Java Management Extensions)规范,具备平台无关性的优势,能兼容各种开源组件,简化基础功能建设。服务管理模块支持多个管理模块,它们在运行时协商或由管理...
OLSTEC:在Matlab中通过TEnsor CP...H.Kasai,“使用递归最小二乘法通过CP分解从不完整数据中进行在线低秩张量子空间跟踪”,IEEE国际声学,语音和信号处理(ICASSP)会议,2016年。 基准清单 在线张量跟踪算法 TeCPSGD
彩色多普勒血流成像(Color Doppler Flow Imaging,CDFI)是一种基于多普勒效应的医学成像技术,它在频谱多普勒技术的基础上发展而来,能直观地展示血流的流动方向、速度、范围、性质以及是否存在返流或分流。...
该技术基于多普勒效应,即当声源与接收器之间有相对运动时,接收器接收到的频率会发生变化。超声多普勒的发展历经了多个阶段,不断优化并扩大了其在临床诊断中的应用。 早期工作始于1842年,物理学家Christian ...
该技术基于多普勒效应,即当声源与接收体之间有相对运动时,接收的频率会有所变化。超声多普勒最初由光学多普勒效应启发,然后被引入到声学领域。 1955年,日本学者里村茂夫等人开始用超声多普勒来研究心脏功能和外...
附件中的"附件2---题目"很可能包含了基于后缀数组的各种实践题目,这些题目可以帮助学习者巩固理论知识并提高实际编程能力。通过解题,我们可以理解后缀数组在不同场景下的应用,并掌握如何根据问题特点选择合适的...
希尔排序(Shell Sort)是一种基于插入排序的快速排序算法,由Donald Shell于1959年提出。它的主要思想是将待排序的数据按照一个增量序列分成若干子序列,然后对每个子序列进行插入排序,最后逐步减小增量,直至增量...
Katanga的Luba和Kasai的Luba在边缘,分别占32.1%和29.1%。 (20.6%)患有RDT和电泳的新生儿在纯合或杂合状态下血红蛋白异常(SS为10.9%; AS为9.7%; AS为0.6%)。 尽管在TRD和电泳后未去皮的儿童中比例很高...
文件中提到了如“Hama-rikyu Gardens”、“Kasai-Rinkai Park”和“Kasai Seaside Park”等公园,它们是城市绿色空间的重要组成部分,为市民提供了亲近自然的机会。 9. **区域划分** 文件列出了多个行政区,如...
Matlab ofdm仿真代码HybridPrecodingOpt:毫米波(mmWave)MIMO系统中混合预编码的优化算法 作者: 最后页面更新时间:2018年11月29日 最新版本:1.1.1(有关更多信息,请参见发行说明) ...Kasai,“复杂
Author: Kasai. Tags: live2d Requires at least: 4.7.4 Tested up to: 4.7.4 Stable tag: 4.7.4 License: GPLv3 or later License URI: http://www.gnu.org/licenses/gpl-3.0.html == Description == Plugin realy ...
构建和更新说明获取存档的副本的官方Sass端口待定替代吉基主题 by Elle Kasai(带有预定义颜色主题的船,例如深色,绿松石,绿色,蓝色,紫色,橙色,红色)更多主题请参阅目录。更多快速入门向导脚本请参阅库。问题...
动力电池产能布局包括:(1)日本,以方形电池为主,工厂位于Sumoto、Suminoe、Himeji、Kasai等地。(2)美国:生产圆柱电池,工厂位于Nevada,设计产能35Gwh,该工厂生产的动力电池主要供给特斯拉储能系统和Model 3...