企业管理应用安全授权设计探讨

时间:2022-07-22 10:34:34

企业管理应用安全授权设计探讨

摘要:随着授权管理在企业管理应用中的普及,对授权安全性的需求也日益突出。文章根据需求,提供了一种企业管理应用的安全授权的设计方案,通过设定三员分立模式,指定相互制约的管理员角色账号,实现用户、角色、权限之间的相互分配及确认功能,以及查看三者之间历史变更数据关系的功能,从而达到安全授权管理的需求。

关键词:企业管理应用;授权管理;安全性需求;三员分立

授权管理作为一种现代新型管理理念,已经在各个领域得到普及。授权的含义是分配他人具体任务以及完成这些任务的权利,并且双方能够对任务的结果达到一致的认可。这种管理理念的实现方式也一致得到企业管理者和员工的肯定。企业管理者通过授权管理,能够高效率的利用好时间,在承担重任的同时,完成自己必须做的工作;企业员工在得到授权的情况下可以在没有上级领导的干扰下,完成任务并做出一些重大决定。评价任何一个企业授权管理应用系统,其安全管理方式可以说是主要指标之一。健全有效的安全管理方式可以保障用户合理地使用应用资源,防止用户获取机密信息或破坏信息。应用级的安全管理,主要取决于应用系统的构成。对于一个大型的管理应用系统,多种岗位、多种级别的用户所拥有的权限也是不同的,这就要求系统能够提供一种安全管理权限体系,确保具有权限资格的用户获取数据和进行数据操作,并禁止未被授权的用户接近数据的信息。在近年来的权限管理方面的研究中,包括基于角色的授权管理的实现研究[1,2,4]、基于RBAC模型法的权限管理的实现研究[3,5-8]等等,虽然都提供了有效的权限安全管理的控制方案,但是针对分配权限本身动作的安全防范措施有所欠缺,表现为一个管理者可以实现分配权限的动作,但是管理者本身是否达到安全分配的要求却不可知。本文不仅提供了一种有效灵活的安全授权方案,同时也保障了分配权限动作的安全防范。

1总体设计

1.1授权管理机制。本设计的应用安全授权体系采用RBAC模型(如图1所示),同时为了分配权限动作的安全防范,为企业应用分配了三种管理员角色,这三种管理员角色拥有固定不可变的管理权限,并且各自指定一位管理员账户,比如管理员A、管理员B、管理员C,可使管理员之间实现相互制约的机制,从而达到分配权限动作的安全防范。图1授权管理体制结构授权管理体制结构定义如下。⑴一位管理员账户只能指定一种管理员角色。⑵权限按照应用模块和功能划分方法以树形结构定义,便于应用管理员按业务模块和功能进行授权。⑶角色可以理解为一组权限的集合,为方便授权而设立。⑷用户在应用中能起到效果的权限都来自于有效权限表数据。⑸一个角色可以作为下级角色,从属于多个其他角色,一个角色也可以作为上级角色,拥有多个其他角色,但是不能循环嵌套。下级角色继承上级角色的权限。⑹角色之间具有互斥关系,互斥角色不能同时授予同一用户;定义角色互斥关系时,应检查是否已经有用户同时授予了两个角色。⑺一个用户可以授予多个角色,一个角色也可以授予多个用户,用户拥有角色的权限以及角色所有上级角色的权限。⑻权限既可以授予(grant),也可以禁用(revoke),禁用关系在同级别角色中具有较高优先级;即假如用户a被授予角色b和角色c(b和c之间不存在隶属关系),b被授予权限x,C被禁用权限x,那么用户a应该被禁用权限x,权限x应从用户a的最终有效权限集合中排除;用户权限的授予关系具有更高的优先级,如前例中,直接给用户a授予权限x,那么用户最终有效权限集合中也具有x;同时角色隶属关系中下级角色也可以取代上级角色的禁用关系。⑼级联授予权限,授予一个权限同时必须授予其所有祖先权限;级联禁用权限,禁用一个权限同时必须禁用其所有子孙权限。⑽为用户、角色授权或者更改用户、角色的隶属关系后,都需要重新计算相关用户的有效权限,记入用户的有效权限表。⑾管理员B可以给角色和用户授权,授权后需要管理员A确认生效;管理员C可查看角色、用户、权限三者之间的历史变更数据。⑿管理员A为用户确认角色和权限后,系统计算用户的最终有效权限,即用户继承的所有角色权限和用户自身被直接授予的权限合集。即用户a继承权限b以及角色c关系,角色c继承权限d关系,则用户a的有效权限集合为权限b和权限d。1.2授权制约机制。用户、权限、角色三者关系需要在管理员B授权后,同时管理员A再确认后才能激活使用,形成相互制约机制(设计如图2所示),审计员可查看三者之间的历史变更数据。以角色授权为例,建立角色授权数据的当前版本和历史版本两张记录表,管理员B授权操作仅修改当前版本记录表,修改后,角色当前版本数据标记为待激活。管理员A确认激活授权后,激活后的版本复制到历史版本表中,存为新版本。当需要计算用户的有效权限时,系统始终从历史版本库中取最新版本角色授权数据进行有效权限计算,这样就可以避免使用未激活状态的授权数据,同时也可以对授权状态的历史进行跟踪审计。用户授权、角色用户分配与角色授权类似,不再赘述。

2详细设计

2.1授予设计。管理员B拥有授予的功能,能够实现分配角色、用户、权限三者之间的关系。管理员B在登陆应用之后,拥有用户授权、角色授权、权限授权、角色分配这几个菜单功能。在用户授权菜单中,选定用户来分配权限关系。关系信息会保存在数据库角色权限关系表(SYS_AUTH_USER)中,表中USER_ID列保存用户表的主键信息,AUTH_ID列来保存权限表的主键信息,IS_REVOKE列来判定是授予(grant)还是禁用(revoke)关系。待激活权限关系的用户信息也会记录在待激活权限关系表(SYS_WAIT_GRANT_AUTH)中,其中ACTIVATE_ID列为用户表主键信息,TYPE列的值设为0,表明该条数据为待激活的用户信息。角色授权菜单的实现方式与之相似,不再记述。在权限授权菜单中,则是通过选定权限来分配角色和用户,并将关系信息分配保存在SYS_AUTH_USER表和SYS_AUTH_ROLE表中,并添加待激活关系数据在SYS_WAIT_GRANT_AUTH表中。在角色分配菜单中,可以选定用户来分配角色关系,也可以选定角色来分配用户关系。关系信息保存在数据库角色用户关系表(SYS_USER_ROLE)中,表中USER_ID列保存用户表的主键信息,ROLE_ID列来保存角色表的主键信息。待激活角色关系的用户信息记录在待激活用户角色关系表(SYS_WAIT_GRANT_USER)中,USER_ID保存用户表的主键信息。管理员B通过授予角色、用户、权限三者之间的关系后,新的三者关系数据会存储在当前版本库中,并标记为待激活状态,此时三者关系在应用中起到效果的依然是历史版本库里面最新版本的数据。2.2激活设计。管理员A拥有确认激活的功能,能够为管理员B分配的角色、用户、权限三者关系进行确认激活操作,此时三者关系会生成新的历史版本库数据,并在应用中起到作用。管理员A在登陆应用后,拥有授权激活、分配角色激活这两个菜单功能。在授权激活菜单中,展示待激活权限关系的用户和角色列表,通过点击用户列或者角色列后,查看对应的待激活的权限关系列表,确认核实后,点击激活按钮进行激活操作。以角色权限关系激活操作为例,将数据库中的角色授权版本控制表(SYS_AUTH_ROLE_LV)中该角色的最大历史版本值为n的所在数据的IS_LAST_VERSION列的值改为0,并添加一条新数据,新数据中ROLE_ID列的值为该角色的主键信息,IS_LAST_VERSION列的值设为1作为最新版本标记,VERSION_NO列的值为n+1;将SYS_AUTH_ROLE表的信息保存在角色授权版本历史数据表(SYS_AUTH_ROLE_V)中,SYS_AUTH_ROLE_V表的LV_ID列为SYS_AUTH_ROLE_LV的主键信息;删除SYS_WAIT_GRANT_AUTH表中该角色的信息表明已激活。用户权限关系激活与角色权限关系激活操作类似,不再赘述。在分配角色激活菜单,可以查看待激活角色关系的用户列表,通过点击用户列,查看对应的待激活的角色关系列表,确认核实后,点击激活按钮进行激活操作。将数据库中的角色用户版本控制表(SYS_USER_ROLE_LV)中该用户的最大历史版本值为n的所在数据的IS_LAST_VERSION列的值改为0,并添加一条新数据,新数据中USER_ID列的值为该用户的主键信息,IS_LAST_VERSION列的值设为1作为最新版本标记,VERSION_NO列的值为n+1;将SYS_USER_ROLE表的信息保存在角色用户版本历史数据表(SYS_USER_ROLE_V)中,SYS_USER_ROLE_V表的LV_ID列的值为SYS_USER_ROLE_LV的主键信息;删除SYS_WAIT_GRANT_USER表中该用户的信息表明已激活。2.3查看设计。管理员C拥有查看审计的功能,能够查看角色、用户、权限三者关系的历史版本记录。管理员C在登陆应用后,拥有授权审计和角色审计两个菜单功能。在授权审计菜单中,通过选择时间段,显示在该时间段下变更过权限关系的用户和角色列表,点击选择用户列或角色列,可获取该用户或角色的权限关系的历史版本以及版本下的关系信息。以获取用户历史权限版本信息为例,通过USER_ID获取SYS_AUTH_USER_LV表所有信息,选择指定的VERSION_NO版本,确定LV_ID的值并可获取SYS_AUTH_USER_V表的所有数据,SYS_AUTH_USER_V表中的AUTH_NAME列信息即为该历史版本下用户的权限关系数据。角色审计菜单实现方式相似,不再赘述。

3结论

在大型的系统应用中,会有十分复杂的用户、权限、角色,授权关系会十分复杂,对应授权关联的代办服务尤为重要。在本文给出的安全授权方案中,实现了责任的分解、权力的授予、授权的检查与跟踪三方面的功能,提供了一种灵活有效的安全授权管理方式,并适用于各种应用领域。通过该设计方案,能够减轻企业应用中授权管理的压力,灵活准确地将任务落到实处,提高企业工作者们的工作效率。

参考文献:

[1]苗雪兰.一种基于角色的授权管理安全模型的研究与实现[J].计算机工程,2002.9:104-105,169

[2]丁于思.基于角色的安全访问控制在企业信息系统中的应用研究[D].中南大学,2003.

[3]张建春.基于RBAC模型的权限管理在OA系统中设计和实现[J].长沙航空职业技术学院学报,2009.9(4):48-52

[4]潘志刚.基于角色控制的权限管理在企业信息系统中的应用与实现[C].全国虚拟仪器大会,2009.

[5]丁仲,左春.用于RBAC权限管理的面向对象框架[J].计算机工程与应用,2005.17:46-48

[6]冀汶莉.基于RBAC模型的权限管理系统的研究与应用[J].微电子学与计算机,2007.8:92-94

[7]吴波,王晶.基于基本RBAC模型的权限管理框架的设计与实现[J].计算机系统应用,2011.20(4):50-54

[8]熊厚仁,陈性元,张斌.基于RBAC的授权管理安全准则分析与研究[J].计算机科学,2015.42(3):117-123

作者:左刚 胡昌平 卞德志 单文金 闫四洋 单位:(1.中国船舶集团有限公司第七一六研究 2.中船重工信息科技有限公司