`
metadmin
  • 浏览: 168871 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

权限管理与系统集成 (答网友问)

阅读更多

新浪网友问了2个问题:
1.业务流程中流程变革时,你的系统该怎么适应。
2.如何完成不同系统中的权限统一管理。

一,第一个问题
1.业务流程中流程变革时,你的系统该怎么适应。
简答:如果是权限发生变化,打开设计器编辑权限逻辑即可,无需修改业务代码,无需重启应用。
1,分析
软件系统完成一个业务,一般有如下要件组成:界面-->服务器-->界面。

服务器端完成工作可以分为两类:

  1. 做权限判断,比如判断角色,对业务数据和当前用户之间关系进行细粒度权限判断等;
  2. 做业务操作,将数据同步到数据库,触发相关服务等。比如修改某张表字段,触发短信模块发送新消息。

当然,一个业务流程,服务器端可能要做多个业务操作,可能也要做多个权限判断。比如:将数据先写入表A,然后将数据写入表B,然后更新表C相关数据。

现在,我们来给权限做个划分:什么是权限的最小单元?也就是什么情况下可以成一个权限,什么情况下又必须做为多个权限来定义?
先看如下代码:

if( SecurityService.permit( currentUser, currentData, "insertTableA" ) {
    DAO.insertTableA( data1 );
}
if( SecurityService.permit( currentUser, currentData, "insertTableB" ) {
    DAO.insertTableB( data2 );
} 

if( SecurityService.permit( currentUser, currentData, "updateTableC" ) {
    DAO.updateTableC( data3 );
}
 



每个具体业务操作对应一个权限;不同业务操作对应不同权限,除非这些操作对应的权限判断条件是相同的。
一个权限定义含有内容:各种情况下,不同用户是否具有操作权限。权限定义输入条件是:当前用户、当前数据和当前操作,具体权限判断逻辑在权限定义里面。

目前我们看到的大部分系统,权限逻辑都是硬编码的,而且是和业务代码在一起的。
如上代码判断,非常显然的看到:将权限逻辑提取出去后,业务流程代码非常简洁明了。而且DAO的方法也超级简单,就是insert/update/delete语句。
DAO的select语句将会很复杂,因为select是要进行权限判断的。这部分权限判断包括两层:

  1. 调用dao的select方法之前,需要进行权限判断,这个判断只是而且只能是角色判断;
  2. dao的select方法里面,需要进行权限判断,针对不同的用户,查询不同的数据。(当然,有的系统实现是这样的,将用户判断放在业务流程层,业务流程层控制使用dao的不同select方法。这样dao对应不同权限情况就有不同的select方法)

幸好,Metadmin帮助开发者实现了带有权限的select操作。只要告诉Metadmin当前用户是谁,要查询什么数据,Metadmin就能返回 该用户具有权限查看的数据。Metadmin还支持分页,自定义条件(比如查姓王的用户[在自己权限范围内查询,不会超出权限范围外])。

2,解答
有了以上了解后,当业务流程发生变化时:

  1. 如果只是权限逻辑发生变化,修改对应的权限逻辑。如果使用Metadmin中间件,打开Metadmin权限设计器,通过web界面修改权限规则,可以立即生效,无需编码,无需重启应用;
  2. 如果是业务流程本身发生变化,比如举例流程是insertTableA-->insertTableB--->updateTableC,改 为insertTableA-->updateTableC--->deleteTableD。如果这样,只能是修改业务代码了。
  3. 如果权限逻辑和业务流程都发生变化,那么两者都分别进行修改,互不影响。

不过,有一点我非常相信:将权限提取出去后,业务流程非常简单、明了。这是我们现在就有能力将业务流程设计的非常灵巧,以至于编写好各个dao方法,业务流程可以采用类似画图的方式,灵巧的构建业务流程。


二,第二个问题
2.如何完成不同系统中的权限统一管理。
简答:Metadmin可以将单个系统的权限集中起来控制,各种系统都可以使用Metadmin进行权限管理。但Metadmin目前还没有提供将不同系统全部集中到一个独立安全服务器管理的功能,类似OES(Oracle Enttilement Server那样)。
1,解答
Metadmin系统以中间件模式集成到软件系统,可以将单个系统的权限集中起来控制,而且提供了Web管理界面。权限逻辑不需要编码,可以直接通过web界面进行管理。因为 Metadmin权限模型,并不需要对业务系统有额外规定,任何业务模型都能进行控制,所以Metadmin是满足各个系统的。但Metadmin目前不 提供将不同系统全部集中到一个独立安全服务器管理的功能。


欢迎网友们积极提问哦

分享到:
评论
2 楼 metadmin 2009-03-31  
谢谢您的提问,我这里回答就仅限于Metadmin Access Manager产品了。

1,Metadmin可以和已有权限系统并存。如果您已经有了rbac(基于角色的控制),而且有编码了,那么就使用您已有的rbac模块进行功能权限控制(粗粒度的权限);使用Metadmin做细粒度控制;

比如:查询客户功能,您使用已有的模块定义权限、角色,然后将角色赋予用户。然后在Metadmin设计器为查询客户功能,定义细粒度权限:不同用户查询客户的数据范围(行列级)。
代码将是如下:
// 使用您已有方案做功能权限控制
if( !MyCompanySecurityService.hasPrivilege( currentUser, SELECT_CUSTOMER ) {
   WebUtil.gotoForbiddenPage( request, response );
} else {
   //如果有权限, 使用Metadmin做细粒度权限控制,Metadmin将不再做角色判断
   // 您不需要写任何SQL语句,Metadmin自动查出被授权查询的数据
   Collection customers=Metadmin.select( currentUser, SELECT_CUSTOMER );

   // 如果分页,语句是这样的:
   Collection customers=Metadmin.select( currentUser, SELECT_CUSTOMER, fromIndex, pageSize );

   // goto jsp page, to display customers
}


2,如果您目前还没用功能权限控制方案,又或者您目前实现的业务功能并不多,建议您全部全部使用Metadmin做功能权限和细粒度权限控制。


3,Metadmin定义细粒度权限,是和业务代码分开的。在Metadmin权限设计器定义即可,不影响已有系统。
1 楼 hehailin1986_163.com 2009-03-31  
你好 我看了一下这个产品的一些介绍 很想知道如果是我开发一个资源管理系统 比如文章管理系统 想和你这个产品进行权限上的结合 以使不同的管理员用户都有不同的操作 那么应该是整合这两个系统呢 还是其他的方案?

相关推荐

    系统集成项目管理工程师-思维导图-重点章节汇总合集

    包括项目立项、整体管理、范围管理、进度管理、成本管理、质量管理、人力资源管理、沟通与干系人管理、合同管理、采购管理、信息文档和配置管理、项目变更管理、信息系统安全管理、风险管理以及项目收尾管理。...

    管理系统系列--后台管理系统,集成权限管理. 账号:admin,密码:123456.zip

    【标题】"管理系统系列--后台管理系统,集成权限管理"揭示了这是一个专为后台操作设计的系统,具有用户管理和权限控制的核心功能。此类系统通常用于企业级应用,帮助管理员有效地管理用户账户,分配不同级别的访问...

    2017年系统集成项目管理工程师考试葵花宝典之金色考点暨历年真题解析

    该考试旨在评估应试者在信息系统集成项目的规划与管理方面的能力。 ### 二、2017年考试重点及历年真题解析 #### 1. 金色考点 - **金色考点**通常指的是历年考试中频繁出现的重要知识点。根据题目中的信息,虽然这...

    通用系统工具软件安防系统集成管理

    控键设定是系统集成管理软件中的关键环节之一,它决定了用户如何与系统进行交互。控键设定可以包括以下几个方面: 1. **控键功能定义**:为每个控键定义其功能,例如打开/关闭某监控摄像头、启动报警程序等。 2. *...

    系统集成项目管理工程师\中级系统集成项目经理考试模拟

    【系统集成项目管理工程师\中级系统集成项目经理考试模拟】涉及的知识点主要集中在项目管理的多个领域,包括合同管理、采购管理、风险管理以及项目执行和控制等方面。以下是详细的知识点解析: 1. **合同管理**: ...

    系统集成项目管理工程师教程补充资料-v1.3.pdf

    配置管理的核心概念包括配置管理计划、配置项的识别与基线建立、配置管理系统的建立、版本管理、配置状态报告和配置审计。配置管理计划是一个文档,详细说明了配置管理的流程、职责分配、资源需求等,而配置项(CI)...

    系统集成方案(标书格式)

    系统集成方案 系统集成方案是指根据企业的实际需求,设计和实现一个高效、安全、可靠的计算机网络系统。该方案涵盖了系统的设计、实施、测试和维护等方面,旨在提高企业的工作效率、降低成本和提高竞争力。 一、...

    计算机信息系统集成项目经理资质管理办法

    - **目的与背景**:此章节开宗明义地指出该管理办法旨在推动计算机信息系统集成行业的健康发展,通过对项目经理资质的有效管理来提升项目的管理水平和建设质量。 - **适用范围**:明确了该办法适用于中国境内的...

    系统集成资料介绍

    4. **门禁管理系统**:一种用于控制出入权限的安全系统。通过门禁卡、生物识别等方式,门禁系统可以有效地管理进出人员的身份验证,确保只有授权人员才能进入指定区域。 5. **防盗报警系统**:用于检测非法入侵或...

    信息化综合管理系统集成.doc

    信息化综合管理系统集成正是为满足这一需求而产生的,它通过整合信息化管理系统与综合管理系统,创建了一个统一的管理平台。本文将详细探讨信息化综合管理系统集成的概念、内容以及实施的关键要点。 ### 信息化综合...

    若依(基于SpringBoot的权限管理系统)集成MobileIMSDK实现IM服务端的搭建.rar

    若依(基于SpringBoot的权限管理系统)集成MobileIMSDK实现IM服务端的.rar r https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/111032404

    异构信息系统集成课件

    5. **安全性与权限管理**:集成后的系统需要考虑跨系统的安全性和权限控制。这包括身份验证、授权机制、数据加密以及审计日志等。 6. **测试与监控**:集成后系统的稳定性、性能和可用性需要通过严格的测试来保证。...

    通用权限管理系统源码

    【通用权限管理系统源码】是基于ASP.NET技术开发的一个完整的权限管理解决方案,它主要用于帮助企业或组织构建具有精细权限控制的后台管理系统。ASP.NET是微软公司推出的一种强大的Web应用程序框架,它构建在.NET ...

    03X801-1 建筑智能化系统集成设计图集.pdf

    根据文件信息,《03X801-1 建筑智能化系统集成设计图集.pdf》是一份与建筑智能化系统集成设计相关的图集文档。文档标题明确指出其主题为建筑智能化系统的集成设计,这意味着文档应该涉及将多种智能化系统集成到一个...

    系统集成项目管理工程师

    系统集成项目管理工程师是IT行业中一个重要的角色,他们负责管理和协调复杂的系统集成项目,确保项目的顺利进行并达成预期目标。项目整体管理是他们核心技能的一部分,涵盖了项目从启动到收尾的全过程。 项目整体...

    2018下半年系统集成项目管理工程师下午真题及答案解析

    《2018下半年系统集成项目管理工程师下午真题及答案解析》 系统集成项目管理工程师是国家软考中的一项专业认证,旨在培养具备全面的系统集成项目管理知识和技能的专业人才。2018年下半年的考试,对于考生来说是一次...

    (源码)基于Spring Boot和Vue的后台权限管理系统.zip

    # 基于Spring Boot和Vue的后台权限管理系统 ## 项目简介 本项目是一个基于Spring Boot和Vue的后台权限管理系统,旨在提供一个高效、安全且易于扩展的后台管理系统。系统集成了Spring Security、JWT、Redis和MySQL...

    系统集成测试方案模板

    系统集成测试计划的目标与背景 - **目的**:该文档旨在明确系统集成测试的目的,即通过一系列测试活动识别和解决问题,确保软件系统的功能、性能符合预期。此外,还包括评估测试环境与实际使用环境之间的差异及其...

    办公自动化系统集成方案

    通过案例分析,可以了解到成功实施办公自动化系统集成的关键因素,如明确的目标设定、合理的项目管理、灵活的系统设计以及持续的用户参与。 五、未来发展趋势 随着云计算、大数据、人工智能等技术的发展,未来的...

Global site tag (gtag.js) - Google Analytics