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