熊天虹,余 陽,婁定俊
中山大學數據科學與計算機學院,廣州510006
工作流技術[1]是利用計算機環(huán)境來實現業(yè)務過程的半自動化或全自動化.而工作流管理系統(tǒng)(workflow management system,WFMS)[2]就是利用該技術管理業(yè)務流程的系統(tǒng),將工作項在合適的時間交給合適的資源以確保案例正確執(zhí)行,實現了過程優(yōu)化、組織變更、提高靈活性等目標[3],因此被廣泛應用于企業(yè)和政府的組織業(yè)務流程管理.目前大多數WFMS 都采用基于角色的訪問控制(role-based access control,RBAC)模型[4-5]來解決授權控制的問題,引入角色作為用戶和權限之間的中介,將業(yè)務流程中的工作項分配給角色,再由擔任此角色的用戶負責執(zhí)行所委派的工作項.角色層次的增加使得權限管理更為靈活,且在實際應用中角色的變化遠慢于用戶的變化,因此降低了用戶變化所帶來的影響.但RBAC 模型也存在一些不足,例如其角色管理過于復雜、授權粒度不夠細化等[6].RBAC 模型中的角色指的是組織角色,企業(yè)的組織結構會因應對激烈的競爭而不斷變動,例如部門的增加、撤銷與合并、角色的增加與減少等.組織資源作為任務工作項分派的核心,其變動將會對任務的分派與執(zhí)行產生嚴重的影響.同時,一套流程系統(tǒng)(支持一組業(yè)務流程的應用系統(tǒng))實施到不同的組織,需要面對不同的組織結構和角色,例如ERP 廠商將同一套流程實施到不同組織結構的企業(yè).RBAC 模型導致業(yè)務流程定義中的任務授權嚴重依賴于組織,后者的頻繁變化不但會引起授權體系的頻繁變化,甚至因影響流程定義而引起執(zhí)行期的異常.
基于以上問題,本文提出了基于職位-角色的訪問控制(position-role based access control,PRBAC)模型.在傳統(tǒng)RBAC 模型的基礎上,將組織模型的角色粒度細化為組織職位(position),同時在業(yè)務模型引入業(yè)務角色的概念并通過映射層建立它們之間的映射,降低了組織層的組織結構變動對業(yè)務層產生的影響.在實際應用中,PRBAC 模型同時滿足了組織層面和業(yè)務層面的訪問控制需求并實現了兩者之間的解耦,增強了系統(tǒng)的適應性與柔性.
隨著互聯(lián)網的發(fā)展,數據資源日益增多,對數據資源的訪問管理和授權安全問題引起了極大的關注,因此訪問控制模型成為一個研究熱點.相關研究開始于20世紀60、70年代,70、80年代主要是自主訪問控制(discretionary access control,DAC)和強制訪問控制(mandatory access control,MAC)[7],它們都是由用戶和權限直接關聯(lián)的,不能靈活適應工作流系統(tǒng)中工作分派人員的頻繁變更.
20世紀90年代,由Ferraiolo 和Kuhu 提出的基于角色的訪問控制模型獲得廣泛關注,用戶和權限通過角色進行關聯(lián),提高了權限管理的靈活性.接著提出了基于角色訪問控制模型簇—RBAC96[8],包括RBAC0~RBAC3[9]4 個概念性模型,它們的權限復雜程度不同且添加了更為細化的授權原則.該模型不斷地被改進和擴展,如基于任務的授權模型是以業(yè)務流程中的任務為核心進行動態(tài)授權[10];Liu等[11]提出的TRBAC 模型添加了時間維度,能夠滿足基于時間的訪問控制需求;Hu等[12]提出的基于屬性的訪問控制(attribute based access control,ABAC)模型是通過屬性組合的方式為用戶授予訪問權限.之后,黃毅等[13]同時考慮任務和角色兩個因素,提出了基于任務-角色的訪問控制模型(task-role based on access control,T-RBAC),結合了TBAC 和RBAC 兩種模型的優(yōu)勢.Qi等[14]提出的基于角色和屬性的訪問控制模型,改進了RABAC(RBAC+ABAC)模型的不足,使得授權更細粒度和靈活高效.蔡婷等[15]提出的基于角色擴展的RBAC 模型(mini-roles RBAC,MR-RBAC)通過引入最小角色集,增強了角色層次結構和權限繼承關系的管理能力.
近年來,熊厚仁等[16]給模型又加入了組織的屬性,將組織角色劃分為組織職能角色和組織任務角色,建立了雙層角色和組織的可擴展訪問控制(scalable access control model based on double-tier role and organization,SDTR-OBAC)模型.周煒[17]提出了一個具有時空約束的工作流授權模型(temporarily-spatially constrained model based on task-role based access control,TSC-TRBAC),用戶在時間和空間的約束下執(zhí)行任務,保證了工作流的安全性和合理性[19].李金艷等[18]提出的面向協(xié)作的柔性工作流引入了團隊的概念,結合角色的靜態(tài)授權和任務的動態(tài)控制,實現了工作流的分級授權管理.進一步,為了確保訪問控制策略的正確性和性能,Bhuyan等[20]定義了一致性、完整性、簡潔性三個質量屬性,并開發(fā)了一種將工作流訪問控制策略映射到上述屬性的機制.此外,Ghazal等[21]針對跨組織的安全信息共享和協(xié)作特點,提出了一種基于智能代理的RBAC(intelligent agent-RBAC,IA-RBAC)的解決方案,特別適用于在權限和任務之間建立關聯(lián),確保安全可靠的訪問控制.
通過分析國內外訪問控制模型和工作流權限控制的相關研究工作,可以看出它們并沒有考慮組織結構變動在工作流訪問控制和授權管理體系中所產生的影響,不能很好地解耦組織模型和業(yè)務模型并且相關的擴展模型也不夠完善,因此本文所研究的PRBAC 模型正是要解決這些問題,且能較好地應用在工作流系統(tǒng)中.
PRBAC 模型繼承了傳統(tǒng)RBAC 模型的基本理念,以角色為核心,將權限授予角色,然后通過賦予用戶相應的角色來完成授權.其擴展理念在于將其中的組織角色細化為組織職位并引入業(yè)務角色.為了降低組織結構的變動對業(yè)務流程模型產生的影響,將用戶所擔任的組織職位與該職位在流程模型中涉及的具體業(yè)務分離,授予業(yè)務角色完成指定業(yè)務功能的權限,因此添加一個映射層對組織中的組織職位與實際的業(yè)務角色建立映射并集中管理權限,增強了系統(tǒng)的柔性,同時也解決了在分布式環(huán)境下產生的角色和權限冗余的問題.
在授權過程中,用戶被賦予組織職位,業(yè)務流程中的工作項被委派給業(yè)務角色,作為中介的映射層為組織職位和業(yè)務角色建立映射關系,用戶便由所擔任的組織職位獲得對應業(yè)務角色所擁有的權限去執(zhí)行被分派的工作項.這樣就解耦了組織層和業(yè)務層,組織結構的變動不會影響到業(yè)務流程的任務分派與執(zhí)行,業(yè)務流程中的任務發(fā)生變更也不會對組織結構產生影響.另外,該模型能夠實現多維度的授權,有效減少了工作分派管理的工作量.
該模型如圖1所示,左邊表示的是用戶通過會話完成組織職位的分配,右邊表示的是業(yè)務角色的授權以及權限的管理.這兩部分是互相獨立的,分別由不同的管理員根據各自設定的規(guī)則完成分配與授權,映射中心則作為它們交互的中介來完成組織職位與業(yè)務角色的映射.
在映射中心中,一個組織往往使用多個流程系統(tǒng).組織職位與業(yè)務角色是多對多關系,業(yè)務角色與權限的映射關系也是多對多的.由對應的流程管理員根據業(yè)務特點對權限進行分配,這也避免了組織管理員因不懂具體業(yè)務而執(zhí)行權限分配導致嚴重后果的情況.
圖1 PRBAC 模型圖Figure 1 PRBAC model diagram
基于對象管理組織(object management group,OMG)[22]的相關術語,本節(jié)從模型的元素、關系、函數三方面給出該模型的形式化描述.
定義1模型元素
1)U(user):表示用戶集合,能被賦予角色和權限,組織內所有實體人員的抽象,一個人員關聯(lián)一個用戶.
2)S(session):表示會話集合,是用戶和角色關聯(lián)的中介,決定了用戶被賦予角色的場景.
3)P(permission):表示權限集合,指的是授予用戶的權利,包含用戶對可執(zhí)行對象能夠實施的操作類型和方法等.
4)O(organization):由人或組織因特定的目標聯(lián)合在一起形成的集體,存在層級結構.
5)OU(organization unit):組織單元,泛指組織,可以是部門或團隊等.
6)OR(organization role):表示組織角色集合,組織中人被賦予的角色,在組織中占據一定的位置和具有相應的職能.
7)OP(organization position):表示組織職位集合,指在組織單元中負責某些功能的用戶集合.
8)BR(business role):表示業(yè)務角色集合,負責在業(yè)務層中完成某類具體業(yè)務的用戶集合.
9)C(constraint):表示約束集合,包含對用戶賦予組織職位、組織職位與業(yè)務角色的映射、對業(yè)務角色授予權限、組織層級關系和職位等級關系的約束,主要的約束與RBAC 中的相同.
一個組織是由多個組織單元組成的,即一個企業(yè)由多個組織部門組成,部門內包含一定數量的組織職位,不同的組織職位負責部門內部不同的功能職責.組織職位是由組織角色和該角色所處環(huán)境(組織單元)兩個維度共同決定的,因此組織職位是組織角色在具體組織單元內的具體實現,它代表著更細粒度的范圍.例如,“財務部”是一個組織部門,“部長”是一個組織角色,而“財務部的部長”就是一個具體的組織職位.
因此,在該PRBAC 模型中,P(position)指的是組織職位,R(role)指的是業(yè)務角色.
定義2模型關系
1)UA?U×OP:表示用戶-組織職位指派,用戶被賦予組織職位,將完成相同工作的用戶指派給同一個組織職位,用戶也可以對應多個組織職位,它們是多對多的關系.
2)US?U×S:表示用戶和會話之間的關聯(lián),用戶可以擁有多個會話,但一個會話只能和一個用戶關聯(lián).
3)OPH?OP×OP:表示組織結構中組織職位的等級結構,具體指職位的上下級關系,但職位之間的權限不能進行傳遞.
4)BRH?BR×BR:表示業(yè)務角色被授予的權限的層級結構,粗粒度的業(yè)務可以繼承其所包含細粒度業(yè)務的權限.
5)OPBR?OP×BR:表示組織職位與業(yè)務角色之間的映射,兩者是多對多的關系.
6)PA?BR×P:表示業(yè)務角色與權限之間的多對多關系,一個業(yè)務角色可以被授予多個權限,一個權限也可以被多個業(yè)務角色擁有.
定義3模型函數
根據上述的模型元素及關系,可以得出下述函數的定義.
1)user:S→U,表示一個會話函數si映射到一個用戶user(si),由用戶來激活一個會話.
2)positions:S→2OP,表示每個會話si到組織職位集合OP 的映射,positions(si)?{OP|(user(si),OP)∈UA}.
3)user_positions:U→2OP,表示一個用戶ui和組織職位集合OP 的映射關系,user_positions(ui)={OP|(ui,OP)∈UA}.
4)orgpos_busirole:OP→2BR,表示組織職位OP 與業(yè)務角色BR 之間的映射關系,orgpos_busirole (opi)={BR|(opi,BR)∈OPBR}.
5)busirole_permissions:BR→2P,表示業(yè)務角色BR 與權限集合P 的映射關系,busirole_permissions (bri)?{P|(bri,P)∈PA},業(yè)務角色被賦予相應的權限.
表達能力是訪問控制模型評價的重要指標之一,本節(jié)將從構建系統(tǒng)的角度證明PRBAC模型與RBAC 模型具有相同的表達能力.
定理1在所有基于RBAC 模型的系統(tǒng)中,均可采用基于PRBAC 模型的系統(tǒng)實現.
證明:對每個RBAC 模型={U,R,P,S,RH,UA,PA} 相應地構造一個PRBAC 模型={U’,OP,BR,P’,S’,OPH,BRH,UA’,PA’},其中
1)U’,P’,S’,UA’,PA’的概念與U,P,S,UA,PA 表達的概念一致.
2)組織角色在具體的組織單元中對應的是組織職位,所以在組織單元中有OP≡OR.
3)RH 在RBAC 模型中有兩個特性:角色層次和權限繼承.而PRBAC 模型中的組織職位層次OPH 表示的是職位之間的等級關系,沒有權限傳遞的概念;業(yè)務角色層次BRH 表示的是處理業(yè)務所需的權限層次,不存在等級關系,但權限可以被繼承.由OP≡OR 可得OPH≡ORH,因此RH 可以表示為由OPH 和BRH 兩者組成的映射集,即有RH≡OPH→BRH.
由此可見,兩個模型的元素及其關聯(lián)是等價的,該定理得證.
定理2在所有基于PRBAC 模型的系統(tǒng)中,均可采用基于RBAC 模型的系統(tǒng)實現.
證明證明方法同定理1.
因此,從以上兩個定理可以證明PRBAC 模型和RBAC 模型具有相同的表達能力.
組織職位是由組織角色和組織單元兩個維度決定的,是最細粒度的維度.RBAC 模型將權限授予粗粒度的組織角色,PRBAC 模型則用組織職位代替組織角色實現更細粒度的授權.但PRBAC 模型在細化權限分配粒度的同時,由于需要進行多層級的授權,在一定程度上會提高授權復雜度.為了解決上述問題,本模型除了組織職位到業(yè)務角色的基本映射外,還增加了由組織部門和組織角色到業(yè)務角色的多維度映射.例如,從組織部門的維度對業(yè)務角色進行映射,實質上是將該部門內的所有職位都映射到指定的業(yè)務角色,這種批量映射的方式減少了授權操作次數,使得授權更為靈活.因此,PRBAC 模型可以從組織角色或組織部門的維度通過映射對業(yè)務角色進行粗粒度的授權,最終都能轉化成由組織職位的維度完成業(yè)務角色的細粒度授權,這為授權復雜度的控制和授權粒度的細化提供了一個很好的解決方案.
在RBAC 模型中,業(yè)務流程定義中的任務授權嚴重依賴于組織,組織的變化會導致流程定義的修改和已執(zhí)行實例的處理,甚至出現流程執(zhí)行異常的問題,因此需要相應地更改授權體系,如更新組織角色與任務工作項的綁定.也就是說,RBAC 為了應對組織變化需要同時修改組織模型、流程模型、授權體系.
PRBAC 模型將組織模型中的組織角色細化為組織職位,在一定程度上它依然是依賴于組織結構的,但其在應對組織結構變動時引入了業(yè)務角色的概念,并通過添加映射層實現了組織資源與流程系統(tǒng)的隔離,那么只需修改映射層中的組織資源信息以及組織職位與業(yè)務角色的映射關系,并不需要修改對業(yè)務角色的授權和業(yè)務流程的定義,這使得一個變化的組織能夠很快地對接業(yè)務流程.
同時,在PRBAC 模型中會存在這樣一些情況:1)若組織結構中只是組織部門內部的組織職位發(fā)生了變化,而組織模型是從組織部門的維度與業(yè)務角色作映射的;2)若組織部門發(fā)生合并等變動,而組織模型是從組織職位的維度與業(yè)務角色作映射的,并且職位所負責的業(yè)務保持不變.針對這兩種情況,除了組織本身的變化之外,映射層與業(yè)務層不需要作任何修改.
從以上的分析可知,在組織結構變動的場景下,PRBAC 模型能夠大大降低授權復雜度并隔離了組織層對業(yè)務層的影響,在一定程度上還可以通過控制映射維度(組織職位、組織角色與組織部門)進一步減少組織變化對業(yè)務造成的影響,增強了系統(tǒng)的柔性.
通過對開源工作流系統(tǒng)YAWL 作少量修改并增加一個映射中心組件[23],本文在YAWL中實現了PRBAC 模型.分析采用的案例為YAWL 官網上的Genko Oil 組織中的一個標準業(yè)務流程Order Fulfillment,該流程開始于訂單管理部門的訂單創(chuàng)建,然后由供應部門進行采購,接著觸發(fā)運輸和付款活動,最終完成交付.為了簡化案例并更好地說明本文的模型,在本案例中主要考慮其中的訂單子流程,如圖2所示.
該子流程描述如下:由訂單管理部門創(chuàng)建的訂單需要通過供應部門的批準并可能需要執(zhí)行一定的修改,訂單的創(chuàng)建是由OD clerk 處理的;當訂單管理員接收并完成被分配的訂單創(chuàng)建任務后,需要決定由哪個訂單管理員去執(zhí)行后期的修改請求;接著完整的訂單會被提交到供應部門去請求批準,可能訂單仍需多次修改,并且需要追蹤每次修改和重新請求批準;如果初始的訂單或任何修改被駁回,又或者訂單未在規(guī)定期限內被處理就會被丟棄,流程將終止.
在定義流程時給任務分配業(yè)務角色(如審核者、核對者和申請者等),這些業(yè)務角色與組織資源無關,只負責完成某類具體業(yè)務,例如在圖3中將Create Purchase Order 這項任務指派給申請者,由申請者完成訂單的創(chuàng)建.
圖2 訂單流程模型中的訂單子流程Figure 2 Ordering sub-process in order fulfillment process model
圖3 YAWL editor 分配資源Figure 3 Resource allocation in YAWL editor
上傳并解析該訂單流程,得到每項任務所指派的具體業(yè)務角色(格式為“流程ID&任務ID&業(yè)務角色ID”).接著映射中心加載組織中的組織資源和該流程解析得到的業(yè)務角色后,對兩者執(zhí)行映射操作,如圖4所示.前面Create Purchase Order 是分配給申請者的,在映射中心中將申請者與Genko Oil 組織中的OD Clerk(Order Management Department)和Client Liaison 建立映射關系,最終該項任務就被指派給了擔任訂單管理部門的職員這個組織職位和Client Liaison 這個組織角色的用戶,也可繼續(xù)指派到具體的一個職員,由他們負責執(zhí)行和完成該任務.
圖4 Order 子過程的映射關系圖Figure 4 Mapping relation diagram of order sub-process
相比較于傳統(tǒng)的RBAC 模型,在PRBAC 模型中,當企業(yè)的組織結構發(fā)生變更時,如Client Liaison 這個組織角色被刪除,只有與其相關的映射關系會受到影響,那么只需更改申請者這個業(yè)務角色與組織資源的映射,而業(yè)務流程的定義與業(yè)務角色不受任何影響;又比如撤銷Warehouse 部門并將其并入Supply Department,而職位所負責的業(yè)務保持不變,那么就不用更新映射關系,流程模型也不需要做任何授權的修改,只需要更新職位的信息(其所屬部門發(fā)生改變),這不會影響到抽象的業(yè)務角色.
由上述的案例分析可知,通過PRBAC 模型建立的映射中心較好地隔離了組織結構變動對業(yè)務流程模型的影響,不需要修改對業(yè)務角色的授權和業(yè)務流程的定義,只需更改與組織變化相關的映射關系,從而增強了系統(tǒng)的柔性,保證了業(yè)務流程的正確執(zhí)行.另外,由于增加了業(yè)務角色的映射中心處理,PRBAC 模型在復雜度和性能上可能會受到一定的影響.然而,工作流的成功執(zhí)行主要依靠人機協(xié)同,更多的是依賴于用戶準確完成工作任務.合適的角色對任務的成功完成非常重要.同時在實踐中,用戶處理占用的時間通常是遠大于機器處理時間的.因此相比較于由組織結構變動而帶來的頻繁授權變更,甚至是流程執(zhí)行期異常而需要重定義,PRBAC 模型所具備的良好適應性和柔性相對而言是更為重要的.此外,模型在復雜度和性能上的優(yōu)化和改進將是后續(xù)的研究方向之一.
本文提出的PRBAC 模型,基于傳統(tǒng)RBAC 模型,將角色的粒度細化為組織職位并引入了業(yè)務角色.針對企業(yè)組織結構變動頻繁的特點,建立映射中心對組織資源和業(yè)務角色進行映射,實現了組織模型與業(yè)務模型的解耦,彌補了RBAC 模型的不足.經過分析和評估,PRBAC 和RBAC 具有相同的表達能力,能夠實現更細粒度的授權且面臨組織資源發(fā)生變動的情況時,不需要修改對業(yè)務角色的授權和業(yè)務流程的定義,使授權更為靈活.最后通過案例分析將貫徹PRBAC 模型理念的映射中心應用于工作流系統(tǒng)中,與相關系統(tǒng)協(xié)同工作,有效增強了WFMS應對組織變化的適應性和柔性,提高了企業(yè)管理的效率.