梁党卫,李 虎,丁胜夺
(1.胜利油田物探研究院,山东 东营 257022;2.中国石油大学(华东) 计算机与通信工程学院,山东 青岛 266000)
任何一个信息管理系统开发过程都涉及对人员操作的管理,因此用户权限管理方法的设计与实现非常重要[1]。Fei等[2]曾提出面向服务的体系结构(SOA), SOA是设计和构建松耦合软件系统的方法, 可将基于中间件开发的分布式应用共享为Internet环境下的软件服务。传统中间件的用户权限系统具有较好灵活性, 基本满足封闭系统安全需求,但在 SOA 模式下难以满足不同节点与系统互相请求服务和共享资源过程中的授权[3]。朱磊等[4]提出一个面向服务的权限管理模型, 通过支持用户之间的代理和提供一定推理能力,为应用开发者提供更完善的权限管理机制,并扩展了中间件跨越组织共享资源和服务的能力。该模型在一个J2EE应用服务器上被实现和验证,实验证明其具有良好的灵活性和可扩展性,但是性能影响限于一定范围[5]。李昕昕[6]从提高权限管理灵活性和通用性入手,提出一种新的RUP(Role-User-Privilege)模型,并在此基础上设计了一个具有通用性的数据库。改进基于角色的通用权限管理模型相较以往的通用权限管理平台,具有管理粒度细化、分级授权和权限制约的特点,使其能更广泛地满足各种业务系统复杂、多变的应用需求[7]。在开发油田信息系统中,由于公司人员多、部门多,系统比较庞大,要保证系统正常运行,需实施用户权限控制,在对系统用户操作权限进行动态管理的同时,必须实现用户菜单定制,且实现与用户无关,避免因人设岗。油田企业的应用系统也在不断细分和多样化,各专业部门为满足自身业务需要,建立起油气勘探、油气开发、采油工程、生产运行等各方面的应用系统,在油田的生产、管理和研究等过程中发挥了巨大作用[8]。
但是,这些应用系统自成体系,具有独立的权限管理和权限控制功能,由于各个应用系统之间技术框架、权限模型、授权方式不一致等原因,导致权限重复建设、权限分散管理、难以集中管控等问题[9]。同时,各应用系统授权都是基于角色的授权模式,主要针对应用系统功能配置,与真实业务岗位之间脱节,难以应对业务的快速变化。
为了解决油田应用系统的上述问题,参照单个应用系统的授权方式,建立油田企业权限集中管控体系,支持多应用系统的权限集中管控体系[10]。权限集中管控体系以油田真实业务岗位为基础,创建权限集中管控模型,搭建权限管控技术框架,研发权限管理功能,提供权限服务应用接口,实现对油田应用系统的权限集中管控。
目前,单个应用系统常用的权限控制模型是RBAC(基于角色的访问控制)模型,基于 RBAC的访问控制模型能有效弥补 DAC和 MAC的不足,且以角色为中心进行访问控制[11]。RBAC模型在大量应用系统中得到了应用和验证,能够满足应用系统内部的权限控制[12]。
权限集中管控模型在RBAC模型基础上,以油田业务岗位为蓝本,通过角色与业务岗位绑定,建立“资源-角色-岗位-用户”4级权限模型,既满足油田专业应用系统的权限管控要求,又符合油田实际生产管理需求[13](见图1)。
图1 权限管控模型
(1)不同应用系统中包含大量应用资源,应用资源和资源角色按照传统的RBAC模式创建,资源角色具有若干应用资源的访问权限;对于单部门应用系统,资源角色的授权方式已经可以满足需求。
(2)在油田应用系统中还有大量多部门应用系统,多个部门在使用应用系统时,虽然使用相同的功能资源,但是功能中访问的数据不同。因此,需在资源角色基础上,与组织机构结合形成各部门的部门角色,以适应多部门应用系统授权。
(3)资源角色、部门角色设定,基本都是针对应用资源的授权,与油田的实际生产管理还有差距。为了与实际业务岗位相匹配,在权限集中管控体系中增加岗位,通过部门角色与岗位绑定,建立应用系统授权与真实业务岗位的关联。
(4)通过建立“资源-角色-岗位-用户”4级权限模型,实现与实际生产管理、业务应用相一致的权限集中管控模型。
权限集中管控体系的技术框架,包括权限数据库、权限管理网站、权限服务接口等3部分,通过ESB服务总线与企业其它技术服务集成[14](见图2)。
图2 权限集中管控体系技术架构
(1)权限数据库。权限集中管控体系在油田企业大范围应用,必然带来大并发的访问量,因此权限模型数据在Oracle中持久化存储,同时使用Redis进行权限模型数据缓存,提高通过权限服务接口获取权限信息的效率,减小权限数据库的压力[15]。
(2)权限管理网站。为所有应用系统提供统一的权限管理中心,提供资源角色配置、部门角色配置、岗位配置、用户授权等功能,所管理的应用系统通过权限管理网站配置应用权限模型;同时,权限管理网站通过ESB总线,与用户中心、应用中心、日志中心等支撑平台进行数据传输。
(3)权限服务接口。对外发布应用接入服务接口和应用监控服务接口,为专业应用系统提供权限管控支持。专业应用系统通过权限服务接口,获取本应用的权限数据,根据权限数据进行权限访问控制。
针对专业应用系统的不同情况,根据自研应用系统和已有应用系统,权限集中管控体系提供了两种管控模式:统一管理模式、统一监控模式,分别提供统一管理和监控支持,如图3所示。
图3 权限管控模式
(1)统一管理模式。对于自研应用系统,企业具有完全自主产权,要求研发应用系统时必须使用统一管理模式。在权限集中管控体系管理和监控应用权限上,通过调用权限服务接口获取权限信息,实现应用权限控制[16]。
(2)统一监控模式。对于引进应用系统,各系统权限管理功能差别很大,权限模型结构不同,改造难度较大。因此,要提供统一监控模式,在应用系统中增加权限推送功能,将权限信息推送到权限集中管控体系中,从而实现应用权限同步与监控[17]。
权限集中管控体系与单个应用系统的权限管控不同,能够管理多个应用系统的权限信息,为各应用系统提供权限服务支持[18]。整个权限管理平台由管理控制台和程序调用控制台两部分组成,其中管理控制台根据权限管理功能的职责,分为系统管理员、权限管理员、应用管理员3类用户,共同完成各应用系统的权限管理。应用程序调用控制台是一组共用的模块构件,业务系统各应用模块皆可调用,根据权限管理模型完成对用户数据库数据的读写权限控制[19]。
权限管理功能主要包括系统管理、权限管理、应用管理、综合查询等(见图4)。
(1)系统管理功能。由系统管理员负责,其主要负责整个系统的基础信息管理。
(2)权限管理功能。由权限管理员负责,其主要负责对权限基础信息的管理,包括各类应用的角色设置等。
(3)应用管理功能。由应用管理员负责,其主要负责对各应用管理员针对应用情况进行具体的应用授权操作。
图4 权限管理功能
应用程序调用控制台用于控制用户数据库读写权限。包括:①用户身份认证检查;②提供权限控制服务,根据用户身份认证检查提供的用户角色,查询数据库取得该用户所持有的功能权限,由权限管理平台判断是否可执行指令;③会话管理功能;④用户试图控制功能,根据权限控制理论的权值原则,通过对用户身份等级的判定为其自动定制专属视图,既满足用户的功能需求,又保证了用户无法越权操作[20]。
针对两种权限集中管控模式,权限集中管控体系提供了两类服务接口:应用接入服务接口、应用监控服务接口。
以自研应用系统调用应用接入服务接口过程为例:首先,用户通过统一认证登陆到应用系统中;其次,应用系统调用相应的应用接入服务接口,获取该用户在应用系统中的权限信息[21];第三,应用系统根据返回结果,解析权限信息,并完成对该用户的访问权限控制(见图5)。
图5 应用系统权限控制过程
目前,权限集中管控体系已经在某油田4个应用系统中试点应用,凭借此管控系统更加高效科学的4级权限模型实现与真实业务岗位相一致的应用授权模式,能够对各应用系统的权限进行整体宏观管控,克服了传统权限管理系统权限重复建设、权限分散管理、难以集中管控等弊端,使得权限管理系统更易于集中管控,有利于体系在更多应用场景推广。具体应用权限统计情况如图6所示。
图6 应用权限统计
权限集中管控体系,以油田实际业务岗位为基础,实现对应用系统的权限集中管控,能够规范应用系统的设计和开发,缩短应用授权研发周期,简化应用授权操作,在油田专业应用中发挥重要作用。下一步研究工作将着力于提升此权限集中管控体系在不同企业的适应性。