首页> 中国专利> 一种基于XML配置的信息系统间授权差异检测方法

一种基于XML配置的信息系统间授权差异检测方法

摘要

一种基于XML配置的信息系统间授权差异检测方法,将各信息系统的用户信息导出为EXCEL文件并上传,WEB服务器获取上传文件并进行解析,通过用户信息及角色对应关系信息,得到初步分析结果二维数组集合;再结合初步分析结果二维数组集合和角色继承关系,得到最终的检测结果二维数组集合,所述二维数组集合记载同一用户在不同信息系统中的授权差异,完成信息系统间授权差异的自动检测。本发明使用计算机自动发现信息系统间的授权差异情况,解决了手工权限梳理方式费时费力、工作量巨大、易出错的问题;通过XML配置文件实现自动遍历检测,提高了检测的准确性;管理员可以通过修改配置文件来适应授权信息的变化,方便维护。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-05-04

    授权

    授权

  • 2014-03-12

    实质审查的生效 IPC(主分类):G06F21/45 申请日:20131108

    实质审查的生效

  • 2014-02-12

    公开

    公开

说明书

技术领域

本发明属于计算机信息技术,涉及电力信息系统的计算机信息安全,为一种基于 XML配置的信息系统间授权差异检测方法,结合电力信息系统业务需要,用于解决电 力信息系统间用户权限分配不当导致的安全问题。

背景技术

电力信息系统间权限管理作为供电企业的一项重点工作,直接关系到供电企业职责 落实、安全生产、经营管理等各项工作的好坏。特别是近年来,随着供电企业信息化水 平的不断提高,供电企业几乎每件重要工作都需要信息系统的配合,若系统权限分配不 当,不仅会造成供电企业各项工作无法正常流转,而且可能引发安全生产隐患,进而对 供电企业造成巨大损失,在社会上产生恶劣影响。

然而,目前供电企业大多依靠管理员进行手工的权限管理方式,这种方式正面临越 来越多的挑战:

1、信息系统权限管理涉及的数据量庞大,配置复杂;

2、单纯从制度上保障系统权限分配准确无误困难;

3、权限管理无辅助决策工具,无法自动发现权限配置错误的用户,手工权限梳理 方式费时费力,工作量巨大,并且易错。

因此,有必要提供一种通用的信息系统间授权差异检测方法自动发现权限配置错误 的潜在用户,为系统管理员提供决策参考,提高供电企业系统权限管理水平。

发明内容

本发明要解决的问题是:现有电力信息系统的权限管理依靠人工手动设置,面对庞 大的数据量,人工手动设置过于复杂,无法全面兼顾整个系统,也没有错误和遗漏的自 检来协助人工管理,因此针对信息系统间授权差异问题,需要提供一种通用的信息系统 间授权差异检测方法,能够高效、准确的检测出电力信息系统间的授权差异情况,提高 工作效率和准确性。

本发明的技术方案为:一种基于XML配置的信息系统间授权差异检测方法,使用 计算机来自动发现各信息系统间用户的授权差异情况,包括以下步骤:

步骤1:将各信息系统的用户信息进行导出,其中一个信息系统对应导出一个Excel 文件;

步骤2:将需要进行授权差异检测的两个信息系统对应的Excel文件上传至Web服 务器,调用文件解析类库POI解析所述两个Excel文件,并将解析后的结果分别保存为 两个哈希表,其中每个哈希表分别保存对应信息系统的用户信息,如果解析成功,进入 步骤3;否则,进入步骤7;

步骤3:管理员预先配置好用户的角色称谓XML配置文件,并将其保存于Web服 务器,所述角色称谓XML配置文件记录了用户角色与称谓的对应关系,Web服务器中 程序调用XML解析类库Dom4j解析所述角色称谓XML配置文件,并将解析后的结果 保存为角色称谓哈希表,角色称谓哈希表中存放不同信息系统的用户角色与称谓对应关 系,解析成功进入步骤4,否则进入步骤7;

步骤4:根据步骤2生成的存放用户信息的两个哈希表及步骤3生成的角色称谓哈 希表,进行第一次授权差异分析,如果分析成功,将分析结果保存为初步分析结果二维 数组集合,完成保存后进入步骤5;否则进入步骤7;

步骤5:管理员预先配置好用户的角色继承关系XML配置文件,并将其保存于Web 服务器,所述继承关系XML配置文件记录了用户角色的继承关系,Web服务器中程序 调用XML解析类库Dom4j解析所述角色继承关系XML配置文件,并将解析后的结果 保存为角色继承关系哈希表,解析成功进入步骤6,否则进入步骤7;

步骤6:根据步骤4中产生的初步分析结果二维数组集合和步骤5中得到的角色继 承关系哈希表,进行第二次授权差异分析,并将分析结果保存为二维数组集合,所述二 维数组集合记载同一用户在不同信息系统中的授权差异,将二维数组集合发送给管理 员,完成信息系统间授权差异的自动检测,流程结束;

步骤7:记录错误日志并将出错提示信息发送给管理员,结束流程。

步骤1中,导出的Excel文件至少包含与授权相关的关键字段,包括用户名、用户 角色和用户权限。

步骤2中,上传文件调用Java文件解析类库POI进行解析,解析得到的两个哈希 表均以用户名为键、该用户名对应的不同角色组成的集合为值进行保存。

步骤3中,使用Java调用XML解析类库Dom4j解析角色称谓XML配置文件,对 于进行授权差异检测的两个信息系统,设为第一信息系统和第二信息系统,解析后的哈 希表以第一信息系统中的角色称谓为键、以第二信息系统中与第一信息系统相对应的角 色称谓的集合为值进行保存。

步骤4的授权差异分析具体为:根据步骤2中得到的两个哈希表,分别设为第一哈 希表和第二哈希表,以第一哈希表为基准,循环遍历第二哈希表,当第二哈希表中有和 第一哈希表键相同的记录时,即两个哈希表对应的两个信息系统包含同样的用户u1,则 创建一个M*N的二维数组array[m][n],其中M为用户u1在第一系统中的角色数量,N 为用户u1在第二系统中的角色数量,并设置初始二维数组中元素的值均为0;创建二维 数组之后,循环遍历步骤3得到的角色称谓哈希表,查询角色称谓哈希表中的键值是否 与array[m][n]的行所代表的某个角色称谓相同,若这种情况产生,即角色称谓哈希表中 的键值与array[m][n]的行i,i∈[0,m-1]所代表的角色称谓相同,则将角色称谓哈希表中 键值所对应的角色称谓的集合取出,并和array[i][k],k∈[0,n-1]所代表的各个元素的列 所代表的角色称谓作对比,假如吻合,则将对应的array[i][k]元素的值设置为1,直至角 色称谓循环遍历结束,产生的二维数组array[m][n]中,假如array[i][j]的值为1,则代表 在二维数组中第i+1行、第j+1列对应的两个角色称谓不存在授权差异;若array[i][j]的 值为0,则代表在二维数组中第i+1行、第j+1列对应的两个角色称谓存在授权差异, 其中i∈[0,m-1],j∈[0,n-1];循环遍历完第二哈希表后,被检测的两个信息系统中包含 的相同的用户都将分别产生一个二维数组,最终可以得到一个二维数组的集合,即初步 分析结果二维数组集合。

步骤5中,使用Java调用XML解析类库Dom4j解析角色继承关系XML配置文件, 解析后的角色继承关系哈希表以子角色信息为键、以该子角色所对应的父角色信息的集 合为值进行保存。

步骤6的授权差异分析具体为:循环遍历步骤4中产生的初步分析结果二维数组集 合,对每个二维数组,结合步骤5的角色继承关系哈希表以矩阵闭包算法的方式来处理 二维数组,处理完之后的二维数组为最终的授权差异检测结果二维数组。

本发明提供了一种通过Web服务器自动进行权限差异检测方法,这里Web服务器 指计算机,采用本发明所述技术方案,具有以下有益效果:使用计算机来自动发现信息 系统间的授权差异情况,解决了以往手工权限梳理方式费时费力,工作量巨大,并且易 错的问题;通过XML配置文件,基于不同信息系统间相同角色不同称谓对应关系及角 色间继承关系,对不同信息系统间的授权差异情况进行多次检测,提高了授权差异检测 的准确性;管理员可以通过修改XML配置文件来适应授权信息的变化,解决了以往解 决此类问题过程中权限对应信息滞后、难于维护等问题,方便管理员更新与维护。

附图说明

图1为本发明实例的方法流程图。

具体实施方式

下面结合具体实例,进一步阐明本发明。

如图1所示,一种基于XML配置的信息系统间授权差异检测方法,包括如下步骤:

步骤1:各信息系统的用户信息进行导出,其中一个信息系统对应导出一个Excel 文件。导出的Excel文件至少应该包含用户名、用户角色及用户权限等与授权相关的关 键字段,其表格结构示例如下:

用户名 用户角色 用户权限 User1 Role1 Power1,Power2 User1 Role2 Power3,Power4,Power5 User1 Role3 Power1,Power6 User2 Role1 Power1,Power2 User2 Role4 Power2,Power6 …… …… ……

如上表所示,User1用户有三种角色,分别为Role1,Role2,Role3,其中Role1有 两种权限:Power1和Power2,Role2有三种权限:Power3、Power4和Power5,Role3 有两种权限:Power1和Power6;User2用户有两种角色,分别为Role1和Role4,其中 Role1有两种权限,分别为Power1和Power2;Role4有两种权限,分别为Power2和 Power6。

步骤2:将需要进行授权差异检测的两个信息系统对应的Excel文件上传至Web服 务器,调用文件解析类库POI解析所述两个Excel文件,并将解析后的结果分别保存为 两个哈希表,其中每个哈希表分别保存对应信息系统的用户信息,如果解析成功,进入 步骤3;否则,进入步骤7。其中上传文件调用Java文件解析类库POI进行解析,解析 得到的两个哈希表均以用户名为键、该用户名对应的不同角色组成的集合为值进行保 存。

步骤3:管理员根据实际系统使用情况,预先手工配置角色称谓XML配置文件, 并将其保存于Web服务器端,所述角色称谓XML配置文件记录了用户角色与称谓的对 应关系,。程序调用XML解析类库Dom4j解析所述角色称谓XML配置文件,并将解 析后的结果保存为角色称谓哈希表,角色称谓哈希表中存放不同信息系统间的角色称谓 对应关系,解析成功进入步骤4,否则进入步骤7。其中使用Java调用XML解析类库 Dom4j解析角色称谓XML配置文件,对于进行授权差异检测的两个信息系统,设为第 一信息系统和第二信息系统,以第一信息系统为差异检测基准,解析后的哈希表以第一 信息系统的角色称谓为键、以第二信息系统中与第一信息系统相对应的角色称谓的集合 为值进行保存,其XML配置文件配置方式如下所示:

<root>

  <Organization org1=″业务角色A″org2=″业务角色A1″/>

  <Organization org1=″业务角色B″org2=″业务角色B1″/>

</root>

其表示“业务角色A”与“业务角色A1”,或者“业务角色B”与“业务角色B1” 虽然在不同的信息系统中称谓不同,但其表示的是同一个业务角色,在授权差异检测时 应避免误将这种称谓的差异当作授权冲突来对待。因此本发明建立了角色称谓XML配 置文件,用于在后续的授权差异检测中排除掉这种情况。

步骤4:根据步骤2生成的存放用户信息的两个哈希表及步骤3生成的角色称谓哈 希表,进行第一次授权差异分析,并将分析结果保存为初步分析结果二维数组集合,如 果分析成功,完成保存后进入步骤5;否则进入步骤7。其具体实现时,首先根据步骤2 中得到的两个哈希表,分别设为第一哈希表和第二哈希表,对应于前面步骤3所述的第 一信息系统和第二信息系统,以第一哈希表为基准,循环遍历第二哈希表,当第二哈希 表中有和第一哈希表键相同的记录时,即两个哈希表对应的两个信息系统包含同样的用 户u1,则创建一个M*N的二维数组array[m][n],m和n分别表示二维数组的行数和列 数,其中M为用户u1在第一系统中的角色数量,N为用户u1在第二系统中的角色数 量,并设置初始二维数组中元素的值均为0;创建二维数组之后,循环遍历步骤3的角 色称谓哈希表,查询角色称谓哈希表中的键值是否与二维数组array[m][n]的行所代表的 某个角色称谓相同,若这种情况产生,例如,设角色称谓哈希表中的键值与array[m][n] 的行i,i∈[0,m-1]所代表的角色称谓相同,则将角色称谓哈希表中键值所对应的角色称 谓的集合取出,并和所述i行array[i][k],k∈[0,n-1]所代表的各个元素的列所代表的角 色称谓作对比,假如吻合,则将对应的元素array[i][k]的值设置为1,直至对角色称谓哈 希表的循环遍历结束,产生的二维数组array[m][n]中,假如某一元素array[i][j]的值为1, 则代表在二维数组中第i+1行、第j+1列对应的两个角色称谓不存在授权差异;若 array[i][j]的值为0,则代表在二维数组中第i+1行、第j+1列对应的两个角色称谓存在 授权差异,i∈[0,m-1],j∈[0,n-1]。循环遍历完第二哈希表后,被检测的两个信息系统 中包含的相同的用户,都将分别产生一个二维数组,最终可以得到一个二维数组的集合, 即初步分析结果二维数组集合。

例如,假设用户User在A系统中的角色为A、B、C、D,在B系统中的角色为A1、 B1、C1、D1,且存在角色称谓对应关系{<A,A1>,<B,B1>},则其最终构造的二维数 组应为:

  A1 B1 C1 D1 A 1 0 0 0 B 0 1 0 0 C 0 0 0 0 D 0 0 0 0

步骤5:管理员根据系统的实际情况,预先手工配置角色继承关系XML配置文件, 并将其保存于Web服务器端,所述继承关系XML配置文件记录了用户角色的继承关系。 程序调用XML解析类库Dom4j解析所述角色继承关系XML配置文件,并将解析后的 结果保存为角色继承关系哈希表,解析成功进入步骤6,否则进入步骤7。其中使用Java 调用XML解析类库Dom4j解析存放角色继承关系的XML配置文件,解析后的哈希表 以子角色信息为键、以该子角色所对应的父角色信息的集合为值进行保存,其XML配 置文件配置方式如下所示:

<root>

  <Organization son=″业务角色A″father=″业务角色A1″/>

  <Organization son=″业务角色B″father=″业务角色B1″/>

</root>

其表示“业务角色A”是“业务角色A1”的子角色以及“业务角色B”是“业务 角色B1”的子角色。

步骤6:根据步骤4中产生的初步分析结果二维数组集合和步骤5中产生的角色继 承关系哈希表,进行第二次授权差异分析,并将分析结果保存为二维数组集合后发送给 管理员,例如返回给管理员所在的前台查询页面,流程结束。其具体实现过程为根据步 骤4中产生的初步分析结果二维数组集合,循环遍历这个集合,对每个结果二维数组结 合步骤5中产生的角色继承关系哈希表以矩阵的传递闭包算法的方式来处理二维数组, 处理完之后的二维数组为最终的授权差异检测结果二维数组。

例如,假设初步的结果二维数组为步骤4中所用示例,且其用户信息也与步骤4中 所用示例相同,且继承关系为:{<A,C1>,<A,D1>,<B,D1>,<C,A1>,<D, C1>},则其初步的结果二维数组与继承关系结合后的关系二维数组如下所示:

  A1 B1 C1 D1 A 1 0 1 1 B 0 1 0 1 C 1 0 0 0 D 0 0 1 0

对如上关系二维数组作传递闭包算法后对应的关系二维数组为:

  A1 B1 C1 D1 A 1 0 1 1 B 1 1 1 1 C 1 0 1 1 D 1 0 1 1

可见,最终,经过一系列处理之后,产生了{<A,B1>,<C,B1>,<D,B1>}这三 对用户角色之间的冲突结果,即对于用户User来说,其在A系统中的角色为A且在B 系统中的角色为B1时可能存在潜在的授权差异冲突情况,需要提交管理员注意,进行 进一步的判断,并进行对应处理。

步骤7:记录错误日志并向前台查询页面返回出错提示信息,结束流程。

本发明通过配置文件来解决信息系统间授权差异检测问题,管理员只需预先根据信 息系统的实际使用情况,配置好角色继承关系XML配置文件和角色继承XML配置文 件,即可通过本发明方法自动进行用户在信息系统间的授权差异的检测,消除了人工排 查繁琐、耗时、易有遗漏和失误的问题,能够快速检测出信息系统间的设置问题提醒管 理员进行处理;并且假如之后信息系统间出现变动,例如新的用户角色间对应关系及角 色间继承关系,不需要修改检测的程序,只需管理员相应的在配置文件中增加配置信息 即可,方便快捷,因此本发明是可扩展的、自动化的信息系统间授权差异检测方法。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号