梁黨衛(wèi),李 虎,丁勝奪
(1.勝利油田物探研究院,山東 東營 257022;2.中國石油大學(xué)(華東) 計算機與通信工程學(xué)院,山東 青島 266000)
任何一個信息管理系統(tǒng)開發(fā)過程都涉及對人員操作的管理,因此用戶權(quán)限管理方法的設(shè)計與實現(xiàn)非常重要[1]。Fei等[2]曾提出面向服務(wù)的體系結(jié)構(gòu)(SOA), SOA是設(shè)計和構(gòu)建松耦合軟件系統(tǒng)的方法, 可將基于中間件開發(fā)的分布式應(yīng)用共享為Internet環(huán)境下的軟件服務(wù)。傳統(tǒng)中間件的用戶權(quán)限系統(tǒng)具有較好靈活性, 基本滿足封閉系統(tǒng)安全需求,但在 SOA 模式下難以滿足不同節(jié)點與系統(tǒng)互相請求服務(wù)和共享資源過程中的授權(quán)[3]。朱磊等[4]提出一個面向服務(wù)的權(quán)限管理模型, 通過支持用戶之間的代理和提供一定推理能力,為應(yīng)用開發(fā)者提供更完善的權(quán)限管理機制,并擴展了中間件跨越組織共享資源和服務(wù)的能力。該模型在一個J2EE應(yīng)用服務(wù)器上被實現(xiàn)和驗證,實驗證明其具有良好的靈活性和可擴展性,但是性能影響限于一定范圍[5]。李昕昕[6]從提高權(quán)限管理靈活性和通用性入手,提出一種新的RUP(Role-User-Privilege)模型,并在此基礎(chǔ)上設(shè)計了一個具有通用性的數(shù)據(jù)庫。改進基于角色的通用權(quán)限管理模型相較以往的通用權(quán)限管理平臺,具有管理粒度細(xì)化、分級授權(quán)和權(quán)限制約的特點,使其能更廣泛地滿足各種業(yè)務(wù)系統(tǒng)復(fù)雜、多變的應(yīng)用需求[7]。在開發(fā)油田信息系統(tǒng)中,由于公司人員多、部門多,系統(tǒng)比較龐大,要保證系統(tǒng)正常運行,需實施用戶權(quán)限控制,在對系統(tǒng)用戶操作權(quán)限進行動態(tài)管理的同時,必須實現(xiàn)用戶菜單定制,且實現(xiàn)與用戶無關(guān),避免因人設(shè)崗。油田企業(yè)的應(yīng)用系統(tǒng)也在不斷細(xì)分和多樣化,各專業(yè)部門為滿足自身業(yè)務(wù)需要,建立起油氣勘探、油氣開發(fā)、采油工程、生產(chǎn)運行等各方面的應(yīng)用系統(tǒng),在油田的生產(chǎn)、管理和研究等過程中發(fā)揮了巨大作用[8]。
但是,這些應(yīng)用系統(tǒng)自成體系,具有獨立的權(quán)限管理和權(quán)限控制功能,由于各個應(yīng)用系統(tǒng)之間技術(shù)框架、權(quán)限模型、授權(quán)方式不一致等原因,導(dǎo)致權(quán)限重復(fù)建設(shè)、權(quán)限分散管理、難以集中管控等問題[9]。同時,各應(yīng)用系統(tǒng)授權(quán)都是基于角色的授權(quán)模式,主要針對應(yīng)用系統(tǒng)功能配置,與真實業(yè)務(wù)崗位之間脫節(jié),難以應(yīng)對業(yè)務(wù)的快速變化。
為了解決油田應(yīng)用系統(tǒng)的上述問題,參照單個應(yīng)用系統(tǒng)的授權(quán)方式,建立油田企業(yè)權(quán)限集中管控體系,支持多應(yīng)用系統(tǒng)的權(quán)限集中管控體系[10]。權(quán)限集中管控體系以油田真實業(yè)務(wù)崗位為基礎(chǔ),創(chuàng)建權(quán)限集中管控模型,搭建權(quán)限管控技術(shù)框架,研發(fā)權(quán)限管理功能,提供權(quán)限服務(wù)應(yīng)用接口,實現(xiàn)對油田應(yīng)用系統(tǒng)的權(quán)限集中管控。
目前,單個應(yīng)用系統(tǒng)常用的權(quán)限控制模型是RBAC(基于角色的訪問控制)模型,基于 RBAC的訪問控制模型能有效彌補 DAC和 MAC的不足,且以角色為中心進行訪問控制[11]。RBAC模型在大量應(yīng)用系統(tǒng)中得到了應(yīng)用和驗證,能夠滿足應(yīng)用系統(tǒng)內(nèi)部的權(quán)限控制[12]。
權(quán)限集中管控模型在RBAC模型基礎(chǔ)上,以油田業(yè)務(wù)崗位為藍本,通過角色與業(yè)務(wù)崗位綁定,建立“資源-角色-崗位-用戶”4級權(quán)限模型,既滿足油田專業(yè)應(yīng)用系統(tǒng)的權(quán)限管控要求,又符合油田實際生產(chǎn)管理需求[13](見圖1)。
圖1 權(quán)限管控模型
(1)不同應(yīng)用系統(tǒng)中包含大量應(yīng)用資源,應(yīng)用資源和資源角色按照傳統(tǒng)的RBAC模式創(chuàng)建,資源角色具有若干應(yīng)用資源的訪問權(quán)限;對于單部門應(yīng)用系統(tǒng),資源角色的授權(quán)方式已經(jīng)可以滿足需求。
(2)在油田應(yīng)用系統(tǒng)中還有大量多部門應(yīng)用系統(tǒng),多個部門在使用應(yīng)用系統(tǒng)時,雖然使用相同的功能資源,但是功能中訪問的數(shù)據(jù)不同。因此,需在資源角色基礎(chǔ)上,與組織機構(gòu)結(jié)合形成各部門的部門角色,以適應(yīng)多部門應(yīng)用系統(tǒng)授權(quán)。
(3)資源角色、部門角色設(shè)定,基本都是針對應(yīng)用資源的授權(quán),與油田的實際生產(chǎn)管理還有差距。為了與實際業(yè)務(wù)崗位相匹配,在權(quán)限集中管控體系中增加崗位,通過部門角色與崗位綁定,建立應(yīng)用系統(tǒng)授權(quán)與真實業(yè)務(wù)崗位的關(guān)聯(lián)。
(4)通過建立“資源-角色-崗位-用戶”4級權(quán)限模型,實現(xiàn)與實際生產(chǎn)管理、業(yè)務(wù)應(yīng)用相一致的權(quán)限集中管控模型。
權(quán)限集中管控體系的技術(shù)框架,包括權(quán)限數(shù)據(jù)庫、權(quán)限管理網(wǎng)站、權(quán)限服務(wù)接口等3部分,通過ESB服務(wù)總線與企業(yè)其它技術(shù)服務(wù)集成[14](見圖2)。
圖2 權(quán)限集中管控體系技術(shù)架構(gòu)
(1)權(quán)限數(shù)據(jù)庫。權(quán)限集中管控體系在油田企業(yè)大范圍應(yīng)用,必然帶來大并發(fā)的訪問量,因此權(quán)限模型數(shù)據(jù)在Oracle中持久化存儲,同時使用Redis進行權(quán)限模型數(shù)據(jù)緩存,提高通過權(quán)限服務(wù)接口獲取權(quán)限信息的效率,減小權(quán)限數(shù)據(jù)庫的壓力[15]。
(2)權(quán)限管理網(wǎng)站。為所有應(yīng)用系統(tǒng)提供統(tǒng)一的權(quán)限管理中心,提供資源角色配置、部門角色配置、崗位配置、用戶授權(quán)等功能,所管理的應(yīng)用系統(tǒng)通過權(quán)限管理網(wǎng)站配置應(yīng)用權(quán)限模型;同時,權(quán)限管理網(wǎng)站通過ESB總線,與用戶中心、應(yīng)用中心、日志中心等支撐平臺進行數(shù)據(jù)傳輸。
(3)權(quán)限服務(wù)接口。對外發(fā)布應(yīng)用接入服務(wù)接口和應(yīng)用監(jiān)控服務(wù)接口,為專業(yè)應(yīng)用系統(tǒng)提供權(quán)限管控支持。專業(yè)應(yīng)用系統(tǒng)通過權(quán)限服務(wù)接口,獲取本應(yīng)用的權(quán)限數(shù)據(jù),根據(jù)權(quán)限數(shù)據(jù)進行權(quán)限訪問控制。
針對專業(yè)應(yīng)用系統(tǒng)的不同情況,根據(jù)自研應(yīng)用系統(tǒng)和已有應(yīng)用系統(tǒng),權(quán)限集中管控體系提供了兩種管控模式:統(tǒng)一管理模式、統(tǒng)一監(jiān)控模式,分別提供統(tǒng)一管理和監(jiān)控支持,如圖3所示。
圖3 權(quán)限管控模式
(1)統(tǒng)一管理模式。對于自研應(yīng)用系統(tǒng),企業(yè)具有完全自主產(chǎn)權(quán),要求研發(fā)應(yīng)用系統(tǒng)時必須使用統(tǒng)一管理模式。在權(quán)限集中管控體系管理和監(jiān)控應(yīng)用權(quán)限上,通過調(diào)用權(quán)限服務(wù)接口獲取權(quán)限信息,實現(xiàn)應(yīng)用權(quán)限控制[16]。
(2)統(tǒng)一監(jiān)控模式。對于引進應(yīng)用系統(tǒng),各系統(tǒng)權(quán)限管理功能差別很大,權(quán)限模型結(jié)構(gòu)不同,改造難度較大。因此,要提供統(tǒng)一監(jiān)控模式,在應(yīng)用系統(tǒng)中增加權(quán)限推送功能,將權(quán)限信息推送到權(quán)限集中管控體系中,從而實現(xiàn)應(yīng)用權(quán)限同步與監(jiān)控[17]。
權(quán)限集中管控體系與單個應(yīng)用系統(tǒng)的權(quán)限管控不同,能夠管理多個應(yīng)用系統(tǒng)的權(quán)限信息,為各應(yīng)用系統(tǒng)提供權(quán)限服務(wù)支持[18]。整個權(quán)限管理平臺由管理控制臺和程序調(diào)用控制臺兩部分組成,其中管理控制臺根據(jù)權(quán)限管理功能的職責(zé),分為系統(tǒng)管理員、權(quán)限管理員、應(yīng)用管理員3類用戶,共同完成各應(yīng)用系統(tǒng)的權(quán)限管理。應(yīng)用程序調(diào)用控制臺是一組共用的模塊構(gòu)件,業(yè)務(wù)系統(tǒng)各應(yīng)用模塊皆可調(diào)用,根據(jù)權(quán)限管理模型完成對用戶數(shù)據(jù)庫數(shù)據(jù)的讀寫權(quán)限控制[19]。
權(quán)限管理功能主要包括系統(tǒng)管理、權(quán)限管理、應(yīng)用管理、綜合查詢等(見圖4)。
(1)系統(tǒng)管理功能。由系統(tǒng)管理員負(fù)責(zé),其主要負(fù)責(zé)整個系統(tǒng)的基礎(chǔ)信息管理。
(2)權(quán)限管理功能。由權(quán)限管理員負(fù)責(zé),其主要負(fù)責(zé)對權(quán)限基礎(chǔ)信息的管理,包括各類應(yīng)用的角色設(shè)置等。
(3)應(yīng)用管理功能。由應(yīng)用管理員負(fù)責(zé),其主要負(fù)責(zé)對各應(yīng)用管理員針對應(yīng)用情況進行具體的應(yīng)用授權(quán)操作。
圖4 權(quán)限管理功能
應(yīng)用程序調(diào)用控制臺用于控制用戶數(shù)據(jù)庫讀寫權(quán)限。包括:①用戶身份認(rèn)證檢查;②提供權(quán)限控制服務(wù),根據(jù)用戶身份認(rèn)證檢查提供的用戶角色,查詢數(shù)據(jù)庫取得該用戶所持有的功能權(quán)限,由權(quán)限管理平臺判斷是否可執(zhí)行指令;③會話管理功能;④用戶試圖控制功能,根據(jù)權(quán)限控制理論的權(quán)值原則,通過對用戶身份等級的判定為其自動定制專屬視圖,既滿足用戶的功能需求,又保證了用戶無法越權(quán)操作[20]。
針對兩種權(quán)限集中管控模式,權(quán)限集中管控體系提供了兩類服務(wù)接口:應(yīng)用接入服務(wù)接口、應(yīng)用監(jiān)控服務(wù)接口。
以自研應(yīng)用系統(tǒng)調(diào)用應(yīng)用接入服務(wù)接口過程為例:首先,用戶通過統(tǒng)一認(rèn)證登陸到應(yīng)用系統(tǒng)中;其次,應(yīng)用系統(tǒng)調(diào)用相應(yīng)的應(yīng)用接入服務(wù)接口,獲取該用戶在應(yīng)用系統(tǒng)中的權(quán)限信息[21];第三,應(yīng)用系統(tǒng)根據(jù)返回結(jié)果,解析權(quán)限信息,并完成對該用戶的訪問權(quán)限控制(見圖5)。
圖5 應(yīng)用系統(tǒng)權(quán)限控制過程
目前,權(quán)限集中管控體系已經(jīng)在某油田4個應(yīng)用系統(tǒng)中試點應(yīng)用,憑借此管控系統(tǒng)更加高效科學(xué)的4級權(quán)限模型實現(xiàn)與真實業(yè)務(wù)崗位相一致的應(yīng)用授權(quán)模式,能夠?qū)Ω鲬?yīng)用系統(tǒng)的權(quán)限進行整體宏觀管控,克服了傳統(tǒng)權(quán)限管理系統(tǒng)權(quán)限重復(fù)建設(shè)、權(quán)限分散管理、難以集中管控等弊端,使得權(quán)限管理系統(tǒng)更易于集中管控,有利于體系在更多應(yīng)用場景推廣。具體應(yīng)用權(quán)限統(tǒng)計情況如圖6所示。
圖6 應(yīng)用權(quán)限統(tǒng)計
權(quán)限集中管控體系,以油田實際業(yè)務(wù)崗位為基礎(chǔ),實現(xiàn)對應(yīng)用系統(tǒng)的權(quán)限集中管控,能夠規(guī)范應(yīng)用系統(tǒng)的設(shè)計和開發(fā),縮短應(yīng)用授權(quán)研發(fā)周期,簡化應(yīng)用授權(quán)操作,在油田專業(yè)應(yīng)用中發(fā)揮重要作用。下一步研究工作將著力于提升此權(quán)限集中管控體系在不同企業(yè)的適應(yīng)性。