巫 茜,張 棟,包 坤
(1.重慶理工大學 計算機科學與工程學院,重慶400050;2.ABB中國有限公司重慶分公司,重慶401121)
工作流技術作為一種新興的信息處理技術,被廣泛應用于各行業(yè),隨之存在的安全問題也越顯突出,而其中針對獨立的安全域中安全的授權訪問服務需求是最為迫切的[1-2]。本文旨在建立一種基于角色的工作流平臺動態(tài)訪問控制安全模型,解決工作流環(huán)境下的動態(tài)職責分離、動態(tài)職責綁定、案例間約束、互惠職責分離等實際問題,為工作流管理系統(tǒng)的安全運行提供技術支持。
工作流是一種反映業(yè)務過程計算機化的模型,是在先進計算機集成支持下,實現(xiàn)經(jīng)營過程集成與經(jīng)營過程自動化而建立的由工作流管理系統(tǒng)執(zhí)行的業(yè)務模型。工作流管理系統(tǒng)指運行在一個或多個工作流引擎上,用于定義工作流運行的一套軟件系統(tǒng)。它與工作流執(zhí)行者(人、應用)交互,確保工作流實例執(zhí)行,監(jiān)控工作流運行狀態(tài)[3-6]。
基于角色的訪問控制模型技術(role-based access control,RBAC),較以往的自主型訪問控制(discretionary access control,DAC)和強制型訪問控制(mandatory access control,MAC)具有更強的靈活性和廣泛的適用性。RBAC的基本思想是以角色為中介,對用戶進行授權控制。系統(tǒng)安全管理員可根據(jù)需要定義各種角色,并為其設置合適的訪問權限,然后根據(jù)用戶所擔任的工作職責或級別分配相應的角色,從而使用戶獲得相關的權限集。其中角色可以看成是一個表達訪問控制策略的語義結構,也可以表示承擔特定工作的資格。RBAC根據(jù)用戶在組織內(nèi)所處的角色做出訪問授權與控制,但用戶不能自主地將訪問權限傳給他人。引入角色的管理模式后,資源授權管理可分為2個過程,即首先實現(xiàn)訪問權限與角色相關聯(lián),然后再實現(xiàn)角色與用戶相關聯(lián),從而實現(xiàn)用戶與訪問權限的邏輯分離。
RBAC模型是一個完整的模型,其中所使用的術語定義如下:
1)用戶(User),一個可以獨立訪問計算機系統(tǒng)中的數(shù)據(jù)或用數(shù)據(jù)表示的其他資源的主體,可以是人、進程等,一般指人。
2)角色(Role),一個組織或者任務中的工作或者位置,它代表了一種資格、權利和責任,例如經(jīng)理、會計、出納、教師等。
3)會話(Session),一個用戶和一組激活的角色,表示用戶的某種角色激活的過程。一個用戶可以進行多次會話,在每次會話中激活不同的角色,這樣用戶也將具有激活的角色所具有的各種權限。用戶必須通過會話才能激活角色。
4)權限(Permission),對計算機系統(tǒng)中的數(shù)據(jù)或者用數(shù)據(jù)表示的其它資源進行訪問的許可。它表示對系統(tǒng)中的客體進行特定模式的訪問操作,與實現(xiàn)的機制密切相關。權限的本質取決于系統(tǒng)的實現(xiàn)細節(jié),如操作系統(tǒng)中保護的對象是文件、目錄、設備、端口等資源,相應的操作模式有讀、寫、執(zhí)行等,而在關系數(shù)據(jù)庫管理系統(tǒng)中保護的對象是關系、元組、屬性、視圖,相應的操作模式有查詢、更新、刪除和插入等。
5)約束(Constraint),角色之間以及角色與權限之間的一種限制關系。
6)角色的層次關系(Role hierarchy),RBAC模型的重要特征。角色之間的繼承關系是根據(jù)權限劃分的,即角色1繼承角色2就表示了角色1擁有角色2的全部權限。
7)管理角色(Administrative role),一種具有以下許可的角色,它可以修改用戶、角色、許可集,或修改用戶和許可的分配關系。
RBAC模型各元素之間的關系如圖1所示。
圖1 RBAC模型
工作流是一類工作中具有固定程序的常規(guī)活動,它將工作活動分解成定義的任務、角色、規(guī)則和過程,通過科學監(jiān)控和合理調(diào)配以上元素,達到提高生產(chǎn)組織水平和工作效率的目的。工作流管理系統(tǒng)針對動態(tài)職質分離、動態(tài)職責綁定、案例間約束、互惠職責分離等問題對于系統(tǒng)安全性能有特殊要求,需要建立動態(tài)訪間控制機制對RBAC模型進行擴展改進,為此在傳統(tǒng)RBAC模型中引入任務案例(TC)、用戶管理(UM)、任務(T)元素,在RBAC元模型基礎上擴展形成如圖2的改進RBAC模型。
圖2 改進的RBAC模型
1)模型元素。在改進的RBAC模型中應用會話的概念,實現(xiàn)動態(tài)約束。在工作流管理系統(tǒng)應用中,由于臨時邊界難于界定,因此會話的概念很難給出一個清晰的定義。正如在電氣銷售企業(yè),如何禁止同一次銷售特價申請業(yè)務過程中同一個用戶執(zhí)行特價請求和特價批準業(yè)務等情況呢?在改進的RBAC模型中,動態(tài)約束的概念是禁止用戶在同一會話時間內(nèi)綁定用戶和角色。很明顯,該例中的銷售特價請求和銷售特價批準業(yè)務處于2個會話中,因此無法應用會話動態(tài)約束控制在不同會話中的用戶和角色的綁定。
為了適應業(yè)務過程的實例化約束的要求,增加了實體:任務案例(TC)和任務(T),如圖2示,任務案例(TC)是一個工作流系統(tǒng)中提到的業(yè)務過程的實例;任務(T)則是工作流系統(tǒng)中具體業(yè)務過程實現(xiàn)的任務實體。與此同時定義了一個3元關系doer(u,t,c),u∈U,t∈T,c∈TC,意味著一個用戶(U)在一個特定的業(yè)務流程中只執(zhí)行一個特定的任務。
2)模型結構。在工作流應用中,企業(yè)組織內(nèi)部人員常處于不同的部門、工作組,并且有多個不定的上級,所以對人員及角色分層網(wǎng)格化管理有很強的要求。
以某電氣銷售公司為例,以地域(西南、華南、西北等)劃分銷售分公司,以渠道(行業(yè)設計院、盤廠、供電局、OEM、系統(tǒng)集成商、分銷商、大工業(yè)客戶等)劃分工作崗位,形成了一個有層次的樹形結構,樹的每個層次代表了級別的不同,每個子樹又代表了不同部門分布,每個節(jié)點代表的用戶角色同時處于不同的級別和不同的部門,從而形成了一個典型而且嚴格的層次關系結構。其中,各渠道部門以及銷售分公司是組織單元,包含在以總裁辦領導的銷售總公司中;銷售人員屬于不同渠道事業(yè)部門和銷售分公司的成員,同一個銷售人員在渠道事業(yè)部門和銷售分公司都有不同的領導。
RBAC模型原本沒有這么多的層次概念,然而在面向工作流管理系統(tǒng)應用中,這種需求相繼而生,因此擴展了該模型以適應于工作流環(huán)境。這個強大的層次概念中暗含的權力信息,給人們提供了表達安全約束的能力。某電氣銷售企業(yè)的關系層次如圖3所示。
圖3 關系層次示意圖
圖3關系層次可抽象出3種關系,定義如下:
包含關系include(d1,d2),d1,d2∈UM,表示組織d1包含組織d2。
成員關系member(u,d),u∈U,d∈UM,表示用戶u是組織d的一個成員。
領導關系head(u,d),u∈U,d∈UM,表示用戶u是組織d中的一個領導。
3)約束關系。在改進的RBAC模型中,借助基于謂詞邏輯的形式化語言描述約束,文獻[7]中的約束關系描述可用形式化語言表達為:
4)動態(tài)約束。動態(tài)約束描繪在工作流環(huán)境下依據(jù)當前任務案例的先前活動的執(zhí)行情況,動態(tài)授予用戶和角色訪問權限。
動態(tài)職責分離:要求系統(tǒng)為一個任務選擇執(zhí)行主體時實施互斥規(guī)則。如,在電氣商品銷售特價申請業(yè)務中不允許在同一申請業(yè)務流程中,執(zhí)行審查特價需求任務的審查人和執(zhí)行財務審批特價需求任務的最終審批人是同一個人。
﹁←doer(u,audit,c)&&doer(u,approve2,c)
動態(tài)職責綁定:同動態(tài)職責分離恰恰相反。要求系統(tǒng)為一個任務選擇執(zhí)行主體時實施相容規(guī)則,如在銷售發(fā)貨業(yè)務中,基于弱化管理的繁雜程序,提高辦事效率的考慮,要求在同一筆銷售業(yè)務流程中,執(zhí)行審查銷售單任務的審查人和執(zhí)行審批銷售單任務的直接審批人是同一個人。
﹁←doer(u,audit,c)&&doer(u',approve1,c)&&not(u=u')
案例間依賴的約束:約束參考其他案例的情況。
互惠職責分離:防止跨越多個案例,不同用戶之間,互利互惠業(yè)務操作。
盡管工作流管理系統(tǒng)在企業(yè)中已經(jīng)有不少的應用,但是安全問題仍是不容忽視的。為了使工作流管理系統(tǒng)的改動不影響系統(tǒng)的安全性,必須考慮如何構架一個集成框架,以方便與工作流管理系統(tǒng)無縫集成,針對該需求的框架,必須提供授權許可服務。某公司電氣銷售系統(tǒng)應用上述模型,實現(xiàn)了該模型與工作流引擎組件的框架集成,如圖4所示。
該平臺采用J2EE的技術路線,基于SOA理念設計,采用多層模式,基于C/S體系結構。框架集成中RBAC訪問控制模塊根據(jù)RBAC數(shù)據(jù)庫中的信息為用戶分配角色。用戶向業(yè)務應用發(fā)送請求時,RBAC模塊根據(jù)角色和權限關系以及特征類別和特征實例,對用戶請求做出相應反應。
圖4 框架集成
授權許可服務管理有關組織關系、角色、特權等信息。工作流引擎與授權許可服務通過兩個通道交互。一個通道用于通知授權許可服務有關工作流的過程實例的歷史信息,另一個通道用于工作流管理系統(tǒng)向授權許可服務提出查詢請求。當新的具體任務實例創(chuàng)建后,緊跟著進入用戶選擇階段。用戶通知工作流引擎進行用戶選擇,工作流引擎接到通知后,通過通道2向授權許可服務發(fā)送查詢請求,詢問哪些用戶可以執(zhí)行當前業(yè)務過程中的當前任務,并對用戶按照排序規(guī)則進行優(yōu)先排序。授權許可服務收到查詢請求后,立刻與知識庫進行信息交換,并按要求計算出所需的用戶列表,返回給工作流引擎并由其決定那個用戶執(zhí)行下一步任務并將有關信息發(fā)送到用戶的任務列表中,當用戶通知工作流引擎接受該任務時,在通道1中引擎自動發(fā)送信息給授權許可服務,并由授權許可服務將授權信息寫入知識庫。
基于角色的工作流平臺訪問控制安全模型的框架集成可實現(xiàn)系統(tǒng)在獨立安全域內(nèi)的安全授權服務,系統(tǒng)初步試運行表明,模型集成應用是可行與合理的。
安全性是工作流管理系統(tǒng)的前提保證,文中提出的基于角色控制的工作流安全訪問改進模型,設計了動態(tài)授權機制,初步應用實踐表明,該模型與工作流引擎組件的框架集成,可實現(xiàn)獨立安全域內(nèi)的安全授權服務,為系統(tǒng)安全運行提供技術支撐。
[1] 范玉順.工作流管理技術基礎[M].北京:清華大學出版社,2001.
[2] 楊天怡,董紅林,黃勤,等.應用角色和任務訪問控制的工作流動態(tài)授權模型[J].計算機應用研究,2010,27(4):1511-1513.
[3]SEJONG O,SEOG P.Task-role-based access control model[J].Information Systems,2003,28:533-562.
[4]葉春曉.基于角色訪問控制(RBAC)中屬性約束委托模型研究[D].重慶大學,2005.
[5] 楊彬,李鑫,楊紅韻,等.基于RBAC的用電檢查管理系統(tǒng)的設計與實現(xiàn)[J].重慶工學院學報:自然科學版,2008,22(10):186-192.
[6]Mikhail I.Gofman,Ruiqi Luo,Ayla C.Solomon,Yingbin Zhang,PingYang,and Scott D.Stoller.RBAC-PAT:A Policy Analysis Tool for Role Based Access Control[J].JICS,2009,76(4):1322-1331.
[7] 張棟,劉飛,宋豫川,等.基于角色的訪問控制機制在工作流平臺下擴展的研究[J].制造業(yè)自動化,2004,26(5):52-57.