梁黨衛,李 虎,丁勝奪
(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 應用權限統計
權限集中管控體系,以油田實際業務崗位為基礎,實現對應用系統的權限集中管控,能夠規范應用系統的設計和開發,縮短應用授權研發周期,簡化應用授權操作,在油田專業應用中發揮重要作用。下一步研究工作將著力于提升此權限集中管控體系在不同企業的適應性。