威尼斯www.9778.com-威尼斯正版官方网站

插件式框架平台

日期:2019-12-25编辑作者:Web前端技术

图片 1

权限设计=功能权限+数据权限

二、插件式框架平台

以插件编程为指导思想,动态反射调用组件为行动方针,深入调研、设计、编码,初步形成现代化软件架构。

Ralasafe是使用Java编写的中间件,前身是Metadmin。今年6月份使用MIT协议开源免费的。Ralasafe采用策略模型来处理数据级权限问题。它含有权限引擎和安全管理界面。权限引擎用来解析安全策略;安全管理界面用来设置和管理安全策略。Ralasafe对业务应用非常友好,不需要对业务数据库进行任何修改。Ralasafe是一款服务,类似log4j那样,而不是框架。所以对您的业务框架也无要求。产品下载地址:

权限管理 Authority Management

目前主要是通过用户、角色、资源三方面来进行权限的分配。具体来说,就是赋予用户某个角色,角色能访问及操作不同范围的资源。通过建立角色系统,将用户和资源进行分离,来保证权限分配的实施。

一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源。

简介

有了理论指导,就需要用实践去验证。所谓知行合一。

作为一款通用插件式开发框架,基础的插件内核是整个平台的核心。鉴于平台的通用性和易用性,还插件式的提供以下常用基础模块功能:

1、 工作流组件

2、 权限系统组件

3、 自动更新组件

4、 自定义UI套件

5、 轻量级ORM

6、 字典管理

7、 通用类库

 

场景举例

企业IT管理员一般都能为系统定义角色,给用户分配角色。这就是最常见的基于角色访问控制。

场景举例:
  1. 给张三赋予“人力资源经理”角色,“人力资源经理”具有“查询员工”、“添加员工”、“修改员工”和“删除员工”权限。此时张三能够进入系统,则可以进行这些操作;
  2. 去掉李四的“人力资源经理”角色,此时李四就不能够进入系统进行这些操作了。

以上举例,局限于功能访问权限。还有一些更加丰富、更加细腻的权限管理。

比如:
  1. 因为张三是北京分公司的“人力资源经理”,所以他能够也只能够管理北京分公司员工和北京分公司下属的子公司(海淀子公司、朝阳子公司、西城子公司、东城子公司等)的员工;
  2. 因为王五是海淀子公司的“人力资源经理”,所以他能够也只能够管理海淀子公司的员工;
  3. 普通审查员审查财务数据的权限是:在零售行业审核最高限额是¥50万,在钢铁行业最高限额是¥1000万;高级审查员不受该限额限制;
  4. ATM取款每次取款额不能超过¥5000元,每天取款总额不能超过¥20000元。

这些权限管理和数据直接相关,又称为数据级权限管理、细粒度权限管理或者内容权限管理。

2.1 插件内核

本平台的插件内核开发借鉴了SD中服务和插件树思想,以一个标准的组件式开发,重新设计了一套插件机制。

整个平台架构基于“微内核+插件”的体系。

插件树和服务组成了框架平台的微内核结构,加上自带的日志监控功能,最大程度上满足了不同人员能够动态方便的配置、加载、卸载平台上的各功能组件的梦想。无侵入、热插拔式的结构,是架构模式思想的优雅体现。

 

分类

2.2 工作流组件

该组件是一套轻量级的可视化的工作流引擎。

工作流组件的公共模块主要包含三个主要功能:工作流引擎、工作流可视化管理、待办任务管理。

工作流引擎是基础模块,主要实现工作流流转的逻辑控制,为系统提供作业服务;本组件支持流程中复杂多变的业务流转,也支持多个跨流程间的转换。

工作流可视化管理(流程设计器、工作流定义工具),主要用于工作流的可视化制作和展示,达到所见即所得的效果。通过可视化的方式把复杂的流程定义以图形化的方式显示出来,加以相关操作和管理;除此之外,还可以实现流程监控、流程业务监控、流程导航等功能。

待办任务管理主要实现办公协同,整合公共的工作流引擎以及企业已经存在的工作流引擎,形成一个统一的待办任务管理。

 

从控制力度来看,可以将权限管理分为两大类:
  1. 功能级权限管理;
  2. 数据级权限管理。

2.3 权限系统组件

基于角色的用户权限管理系统(RBAC)是目前公认的解决大型企业的统一资源访问控制的有效方法。

本套权限管理组件不局限于传统的权限,角色,用户三者的关系,在减小授权管理的复杂性基础上,通过独特的允许、禁止资源控制思想,增强了授权的灵活性。既可以按照角色统一授权,也可以对人员独立授权。

权限可粗粒度的分为模块权限,亦可细化到具体操作资源和功能(菜单、按钮、数据)。能够指根据系统管理员设置的安全规则或者安全策略,能够达到使用户可以访问且只能访问自己被授权的资源,并拒绝访问被禁止的指定资源。

平台配合提供了业务系统常用字典管理功能,可通过可视化的操作和维护,能快速操作平台上的字典数据。整个数据字典数据为框架平台所共享,有效提高了数据的重复利用率和产品、项目的开发效率。

 

从控制方向来看,也可以将权限管理分为两大类:
  1. 从系统获取数据,比如查询订单、查询客户资料;
  2. 向系统提交数据,比如删除订单、修改客户资料。

图片 2

2.4 自动更新组件

一个易用、稳定的自动升级功能组件也相当重要。

本组件就是旨在快速简单地为平台实现简易高效自动更新功能。主要分为客户端和服务器端两个部分。客户端主要是提供了用户使用的类库和可执行文件(可任选其一);服务端是可视化的更新包生成工具。

支持多种调用方式:引用自动升级客户端进行代码调用,或使用命令行进行调用。

更智能、更安全:全程自动化,自动同步或异步下载,可自动结束正在运行的程序(可指定);支持增量更新;支持升级包数据加密和校验;支持升级过程中的自动备份和自动回滚功能(如更新时发生错误,能自动还原到安装更新前的状态)。

 

概念

用户身份认证,是要解决这样的问题:用户告诉系统“我是谁”,系统就问用户凭什么证明你就是“谁”呢?所以,用户身份认证,根本就不属于权限管理范畴。 对于采用用户名、密码验证的系统,那么就是出示密码 ——当用户名和密码匹配,则证明当前用户是谁; 对于采用指纹等系统,则出示指纹; 对于硬件Key等刷卡系统,则需要刷卡。密码加密,是隶属用户身份认证领域,不属于权限管理范畴。

系统管理,一般是系统的一个模块。而且该模块一般还含有权限管理子模块。因此,很多人误认为权限管理系统只是系统的一个小小的子模块。

系统管理里面的权限管理模块,只是一个操作界面,让企业IT管理员能够设置角色等安全策略。系统背后还有很多权限验证逻辑,这些都并不属于该模块。总体来说,该模块相当于给权限管理模块提供了一些数据,比如:张三是人力资源经理等。更多混淆概念,请参考:《对权限管理认识的一些误区》。

2.5 自定义UI套件

她是一套美观大方的用户自定义用户界面。

不单为应用系统开发提供了支持多样式界面、多文档视图的基础窗体、向导窗体、气泡弹窗、数据表格、自定义报表、动态图表等一系列界面组件,保证了人机交互的一致性和增强了用户界面的统一性;还提供了包括支持水印和数据验证功能的数据编辑器、选项卡、日期选择器、多状态树形控件、分页控件、系统托盘等在内的众多UI控件。

这些组件不仅弥补了标准控件包的空白或不足,而且拥有更多、更强的特性和功能,会大大提高开发效率。

 

技术实现

按照权限管理的力度,逐步介绍权限管理实现技术。

2.6 轻量级ORM

该组件包括一套抽象数据领域模型层、一套抽象数据访问操作层和一套轻量级的代码生成器。

基于现有设计好的CodeSmith模板文件可以快速生成业务模型和数据库操作代码。通过高度封装的数据库操作抽象基类,能完美实现多数据库操作的支持。

妈妈再也不用担心多样的第三方框架或者是繁琐的增删改查操作了,贴合实际开发抽象出的基础领域模型和数据库工厂,能够很好的适应各业务需求。

 

功能权限管理技术实现

功能权限管理技术,一般就使用基于角色访问控制技术RBAC(Role Based Access Control)。该技术被广泛运用于各个系统,非常容易掌握。该技术模型如下图示:

图片 3

权限验证功能级的权限验证逻辑非常简单:查看该当前登录用户的角色是否包含该功能的权限。如果有,则表示有权访问,否则表示无权访问。对于WEB系统,一般定义一个Filter就可以完成权限验证,无需在各个程序入口进行权限判断。

2.7 总结

强大的微内核架构,功能实用、丰富的插件式组件,已经支撑起一套强大的、通用的软件开发框架——插件式框架平台。辅之多年提炼的通用类库和成熟的富框架格局,选择她,就是选择了实用、高效!

 

程序伪代码如下:
// 获取访问功能*String url=request.getRequestPath();*// 进行权限验证*User user=request.getSession().get;**boolean permit=PrivilegeManager.permit( user, url );**if {**chain.doFilter( request, response );**} else {*// 可以转到提示界面}
数据级权限管理技术实现

目前,数据级权限管理领域,一直没有统一的技术。

大体上,软件开发人员采用如下技术:
1. 硬编码,也就是将这种逻辑以if/else等形式与业务代码耦合在一起,这种情况居多;2. 使用规则引擎,也有一些企业将这种逻辑以规则形式提出来,并使用规则引擎解析规则;3. 使用第三方专业软件,有开源中间件Ralasafe; 开源框架Spring Security; 商业产品Oracle Entitlements Server, IBM Tivoli Access Manager, UPMS通用用户权限系统等。
  • 硬编码形式弊端是非常显然的。耦合性强,难以测试;系统组件复用率低;系统后期改动代价非常大,牵一发而动全身。
  • 使用规则引擎可以解决很多问题,学习难度尚可。但规则引擎并不是专业用于权限管理的,所以对于复杂一些的权限管理,就显得力不从心。
  • Ralasafe和Oracle、IBM的商业产品一样,都是中间件形式,对应用系统和应用数据库结构没有要求。都有管理界面进行直接操控管理,而且都能在线进行测试。
    • 相比较,Ralasafe还可以控制查询权限(即从系统查询订单、查询客户等),Oracle、IBM的商业产品没有这方面功能;
    • 从产品学习难度来看,Ralasafe只要有一些IT经验,就能快速上手;Oracle、IBM产品即使是专业人员,也难以掌握。
    • Spring Security是框架,需要对你的应用系统进行改动,你的系统必须在该框架进行设计编写。它只是帮助开发人员将权限提取出来了,但数据级权限还需要开发人员开发Voter。而且配置工作巨大,难以测试。
    • 虽然上述提到的产品,都是Java产品。但Ralasfe和Oracle、IBM的商业产品,以中间件形式,可以部署在独立服务器上,使用web service等方式与非Java系统交互。

实施

① 功能级权限控制这是很多系统都能做到的。让系统使用者定义角色,给用户分配角色。成功实施该步骤,用户能在功能级进行权限管理。整个过程无需软件开发商参与。

② 部分预定义好的数据级权限有些复杂一点的系统,提供了一些规则和管理界面,可以让系统使用者(一般是企业IT管理员)输入规则参数。

比如普通审查员审查财务数据的金额区间,勾选某用户能够查询哪些组织机构的订单数据。

这是给企业提供了部分控制数据级权限的能力。但该能力还非常弱,仅限于已定义好的策略,不能适应安全策略变化。而且,企业需求肯定会随着业务发展、时间推移,发生变化。

比如:普通审查员审查区间由原来的单一设置区间,改为按照行业、按照地域来设置不同的区间。用户查询订单不仅和组织机构有关,还和订单业务领域有关。

当这些需求发生的时候,企业还要求助于软件开发商进行修改。

③ 企业完全掌控安全策略
企业完整掌控安全策略,应该包括2个方面内容:
  1. 功能级权限管理完全自我掌控;
  2. 数据级权限管理完全自我掌控。

实现这方面需要,还需要考虑企业的IT能力:IT能力没有软件开发商强,而且权限管理涉及整个系统安全,关系重大。

因此软件必须是这样的:
  1. 图形化、集中管理的,便于企业管理;
  2. 可在线测试的,定制策略后在不影响业务的情况下,进行测试,确保无误。目前,就Ralasafe和Oracle、IBM产品满足要求。

注意问题

不良的权限管理系统,必然留下系统漏洞,给黑客可趁之机。很多软件可以轻松通过URL侵入、SQL注入等模式,轻松越权获得未授权数据。甚至对系统数据进行修改、删除,造成巨大损失。

很多系统,尤其是采用硬编码方式的系统,存在权限逻辑与业务代码紧密耦合,同时又分散在系统各个地方,系统漏洞势必非常多,而且随着系统不断修改,漏洞逐步增多。

好的系统,应该将权限逻辑集中起来,由专业的安全引擎进行设置、解析。业务逻辑调用安全引擎,获得权限结果,不再使用非专业模式。

这种转变,如图示:

图片 4

权限可以怎样设计?

  • ##### 后台设计三原素

  • ##### 联运后台的设计

本文由威尼斯www.9778.com发布于Web前端技术,转载请注明出处:插件式框架平台

关键词:

手机上有多少程序能查看你的隐私?

这只是一个小小的例子,从中可以看到,如果在未来几年,智能手机得到了真正的普及,那么我们肯定会看到更多的...

详细>>

放弃Unity环境后 Canonical公司宣布将大幅度裁员

有人抱怨,作为最大的基于GNOME的桌面发行版开荒商,Canonical集团的进献应该越来越多些。 本周早些时候,Canonical 公...

详细>>

鲍尔默承认 iPad 的成功,并准备用 Windows 7 平板追赶苹果

“那将是干Baba计算机的完全体,操作系统正是 Windows ,全职能的 Windows 7。比方说,当您购买了 Windows 7设备时,你能...

详细>>

魅族 4今日Hong Kong开卖 最低4480美金

汇通网9月13日讯苹果iPhone5发布之后,上市时间和价格也随即公布,首发国家或地区包含:香港,美国,加拿大,日本...

详细>>