`
metadmin
  • 浏览: 167880 次
  • 性别: 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

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

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

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

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

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

    酒店管理系统集成测试用例

    本文档所涉及的酒店管理系统集成测试用例,针对的是客房预订系统、前台接待系统、前台收银系统、管家系统、密码管理系统等核心功能模块。这些模块的正常运作是酒店业务顺利开展的基础。 首先,客房预订系统是酒店...

    系统集成项目管理工程师教程学习笔记.docx

    《系统集成项目管理工程师教程学习笔记》是一份针对软考中级系统集成软件工程师的复习资料,专注于项目管理各个领域的输入、工具与技术以及输出。这份笔记涵盖了项目管理的多个核心领域,包括整体管理、范围管理、...

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

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

    系统集成资料介绍

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

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

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

    异构信息系统集成课件

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

    论文研究-集成统一授权管理系统研究与实现 .pdf

    集成统一授权管理系统是一个旨在解决当前授权管理系统中普遍存在的问题的研究课题。它主要关注如何在同一系统中支持不同的访问控制方法,并对多种资源实施统一且有效的授权管理。文中提及的授权管理系统具备制定和...

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

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

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

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

    系统集成项目管理工程师

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

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

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

    ssh集成的权限管理板块

    本文将深入探讨SSH集成中的权限管理板块,这对于任何涉及到用户访问控制的系统都是至关重要的。 首先,权限管理是系统安全的核心组成部分,它涉及到用户角色分配、操作授权、资源访问控制等多个方面。在SSH框架中,...

    系统集成测试方案模板

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

    办公自动化系统集成方案

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

Global site tag (gtag.js) - Google Analytics