王豐錦 張群芳
摘要: 在SaaS中,人們正逐漸采用基于服務(wù)的業(yè)務(wù)流程來(lái)滿足企業(yè)業(yè)務(wù)流程的靈活性和定制性。從實(shí)現(xiàn)工作流訪問(wèn)控制的角度,應(yīng)當(dāng)使工作流訪問(wèn)控制模型與流程模型分離,以支持在流程改變或組織機(jī)構(gòu)變化時(shí)減少對(duì)彼此的影響。為此,設(shè)計(jì)和實(shí)現(xiàn)了一個(gè)面向服務(wù)的、支持訪問(wèn)控制模型和流程模型分離的SaaS工作流訪問(wèn)控制模型—RBSWAC(Role-based Service Workflow Accesss Control )。該模型可提高訪問(wèn)控制的適應(yīng)性和靈活性,實(shí)現(xiàn)訪問(wèn)控制模型同流程模型的松耦合和靈活性。
關(guān)鍵詞: saas; 訪問(wèn)控制模型; 服務(wù); 工作流
中圖分類號(hào):TP319文獻(xiàn)標(biāo)志碼:A文章編號(hào):1006-8228(2012)03-12-03
Designing a SaaS workflow access control model
Wang Fengjing, Zhang Qunfang
(Beijing Tongfang Software, Beijing, 100080 China)
Abstract: Service oriented workflow has been adopted in the SaaS application to meet the flexibility and customization of enterprise information system, which emphasizes the separation of access control model and the workflow model. In this paper the authors design and implement a service oriented SaaS workflow access control model-RBSWAC(or Role-based Service Worklfow Accesss Control), which may enhance the flexibility and adaptability of access control and realize the loose coupling and agileness between the access control model and the workflow model.
Key words: SaaS; access control model; service; workflow
0 引言
SaaS是Software as a Service(軟件即服務(wù))的簡(jiǎn)稱,是一種通過(guò)互聯(lián)網(wǎng)向公眾特別是中小企業(yè)提供應(yīng)用軟件的模式。SaaS軟件廠商將應(yīng)用軟件統(tǒng)一部署在中心服務(wù)器上,租戶可以根據(jù)自己的實(shí)際需求,通過(guò)互聯(lián)網(wǎng)向廠商定購(gòu)所需的應(yīng)用軟件服務(wù)。SaaS本質(zhì)就是通過(guò)在線租賃的方式替代傳統(tǒng)的信息化建設(shè)投資,并保證租戶充分享有信息化技術(shù)的便利、效率和專業(yè)的信息化服務(wù)。
在SaaS中為了支持客戶的實(shí)際業(yè)務(wù)需求,需采用基于服務(wù)的業(yè)務(wù)流程進(jìn)行支撐,一方面以支持多企業(yè)的業(yè)務(wù)流程的靈活性和定制化,另一方面也可支持靈活的訪問(wèn)權(quán)限控制[1]。隨著信息技術(shù)和企業(yè)業(yè)務(wù)的發(fā)展,企業(yè)的組織結(jié)構(gòu)更加動(dòng)態(tài)化,業(yè)務(wù)流程也經(jīng)常發(fā)生變化,這些變化增加了實(shí)現(xiàn)工作流訪問(wèn)控制的復(fù)雜性。從實(shí)現(xiàn)工作流訪問(wèn)控制的角度,應(yīng)當(dāng)使工作流訪問(wèn)控制模型與流程模型分離,這樣在流程改變時(shí),通過(guò)工作流訪問(wèn)控制的調(diào)整可以避免影響到企業(yè)的組織安全策略[2,3]。同時(shí),當(dāng)企業(yè)的組織結(jié)構(gòu)發(fā)生變化時(shí),也可以利用工作流訪問(wèn)控制的調(diào)整避免對(duì)流程模型產(chǎn)生影響,有助于支持SaaS業(yè)務(wù)流程的靈活性和安全性[4]。
本文設(shè)計(jì)和實(shí)現(xiàn)了一個(gè)面向服務(wù)的、支持訪問(wèn)控制模型和流程模型分離的SaaS工作流訪問(wèn)控制模型—RBSWAC(Role-based Service Workflow Accesss Control )。
1 RBSWAC模型定義
在RBSWAC模型中,流程中的任務(wù)是作為抽象服務(wù)存在的,在具體運(yùn)行時(shí)任務(wù)將被映射到具體的服務(wù)實(shí)例。服務(wù)是實(shí)施授權(quán)的基本單元。一方面,服務(wù)作為執(zhí)行流程任務(wù)的具體執(zhí)行體;另一方面,作為任務(wù)的具體執(zhí)行體的服務(wù)又在訪問(wèn)控制模型中作為角色、權(quán)限之間的關(guān)聯(lián)者進(jìn)行訪問(wèn)控制權(quán)限的定義,在流程運(yùn)行而進(jìn)行服務(wù)調(diào)用時(shí),將相應(yīng)權(quán)限與相應(yīng)角色的用戶進(jìn)行關(guān)聯(lián)[5]。因此,在RBSWAC中,訪問(wèn)控制模型和流程模型通過(guò)服務(wù)就關(guān)聯(lián)在了一起,實(shí)現(xiàn)了訪問(wèn)控制模型與流程模型的松藕合關(guān)系。
當(dāng)用戶執(zhí)行任務(wù)時(shí),系統(tǒng)根據(jù)定義的訪問(wèn)控制模型實(shí)例化任務(wù)到具體服務(wù)實(shí)例,授權(quán)用戶可以調(diào)用服務(wù)實(shí)例的操作,當(dāng)任務(wù)完成時(shí)系統(tǒng)將刪除服務(wù)實(shí)例,用戶的權(quán)限自動(dòng)取消,這樣就可以實(shí)現(xiàn)動(dòng)態(tài)授權(quán)原則。同時(shí),本模型也支持通過(guò)設(shè)定流程中任務(wù)間的沖突關(guān)系,在流程運(yùn)行時(shí)將任務(wù)間沖突映射到服務(wù)間沖突關(guān)系,從而達(dá)到職責(zé)分離的目的。
RBSWAC模型如圖1所示。
圖1RBSWAC模型示意圖
根據(jù)WfMC規(guī)范[6],可以定義流程模型如下。
⑴ 流程模型中的元素包括:Wf表示工作流,T表示工作流中的流程任務(wù),TInstance表示任務(wù)實(shí)例。
⑵ 工作流Wf是一組任務(wù)T的集合。工作流的運(yùn)行過(guò)程看做Wf 的一個(gè)流程實(shí)例的執(zhí)行,而一個(gè)流程實(shí)例是一組任務(wù)實(shí)例TInstance 的集合。
RBSWAC模型的基本元素及其與流程模型的關(guān)系說(shuō)明如下。
⑴ RBSWAC的基本元素包括:U,用戶集合;R,角色集合;S,服務(wù)集合;P,與流程任務(wù)執(zhí)行相關(guān)的權(quán)限集合;一個(gè)在流程運(yùn)行時(shí)才建立的ASS(authority ServiceSession)—授權(quán)服務(wù)會(huì)話。
⑵ 用戶與角色之間的關(guān)系為UR,URUXR,它們之間的關(guān)系是多對(duì)多的關(guān)系。
⑶ 角色層次關(guān)系。角色用于描述組織模型中的責(zé)任單元,角色之間存在偏序關(guān)系RH,RHRXR,這種關(guān)系可以用<表示,如ri<rj,就表示rj是ri的上級(jí)角色。
⑷ 權(quán)限集合P定義了工作流程任務(wù)執(zhí)行過(guò)程中相關(guān)的權(quán)限集合。在RBSWAC模型中,權(quán)限是一個(gè)與任務(wù)執(zhí)行相關(guān)的抽象概念,也就是流程任務(wù)對(duì)應(yīng)的操作體的具體執(zhí)行,即各種具體的業(yè)務(wù)權(quán)限。
⑸ 任務(wù)與角色之間的關(guān)系TR,TRTXR,它們之間是多對(duì)多的關(guān)系;由于存在RH角色層次關(guān)系,TR也是可以根據(jù)RH進(jìn)行繼承的。
⑹ 任務(wù)與權(quán)限之間的關(guān)系TP,TPTXP,這種關(guān)聯(lián)關(guān)系規(guī)定了執(zhí)行任務(wù)時(shí)所需要的權(quán)限。
⑺ 工作流中的任務(wù)與服務(wù)集合中的服務(wù)存在多對(duì)一的指派關(guān)系TS,TSTXS,每個(gè)任務(wù)只有一個(gè)服務(wù)作為其具體執(zhí)行體, 但一個(gè)服務(wù)可以對(duì)應(yīng)到多個(gè)任務(wù)上。
⑻ 服務(wù)集合S由一組服務(wù)s組成。s是一個(gè)三元組(PAin,PAout,SP)。其中PAin和PAout分別表示服務(wù)的輸入?yún)?shù)和輸出參數(shù)集合,用來(lái)描述服務(wù)與用戶之間的數(shù)據(jù)交互需求,在任務(wù)到服務(wù)的映射過(guò)程中會(huì)進(jìn)行對(duì)應(yīng);SP表示服務(wù)s上的各種具體操作函數(shù)集合。
⑼ 存在一個(gè)約束集Constraints,表示作用在用戶、角色、服務(wù)和權(quán)限之上的授權(quán)約束關(guān)系,可用以實(shí)現(xiàn)更復(fù)雜的安全策略控制。
⑽ 工作流實(shí)例WInstance是一系列授權(quán)服務(wù)會(huì)話集合ASS[ass1,ass2,…assn]。Assi是一個(gè)四元集(T,TS,TP,TR),tT,TSS是任務(wù)t執(zhí)行時(shí)的服務(wù)s,TPP是完成任務(wù)t需要的最小權(quán)限集,TRR是可執(zhí)行任務(wù)t的角色集。工作流實(shí)例中的任務(wù)按照其定義中的流程邏輯順序執(zhí)行。授權(quán)服務(wù)會(huì)話作為流程任務(wù)的執(zhí)行和實(shí)施訪問(wèn)控制點(diǎn)的基本單元,將任務(wù)、服務(wù)、角色和權(quán)限關(guān)聯(lián)起來(lái),避免了流程模型和訪問(wèn)控制模型的直接關(guān)聯(lián)。如果訪問(wèn)控制模型或者其中的安全策略發(fā)生改變,只需要修改相關(guān)的授權(quán)服務(wù)會(huì)話,而流程模型無(wú)需作任何更改。同樣,如果流程的業(yè)務(wù)邏輯發(fā)生變化,例如當(dāng)需改變某些任務(wù)的工作內(nèi)容或添加、刪除部分任務(wù),從而影響執(zhí)行流程所需的權(quán)限或流程參與者時(shí),只需要對(duì)任務(wù)所對(duì)應(yīng)的授權(quán)服務(wù)會(huì)話作相應(yīng)的修改而不必修改訪問(wèn)控制模型和安全策略。
⑾ 任務(wù)授權(quán)服務(wù)會(huì)話的指派(TASSA):TASSATX ASS,是多對(duì)一的任務(wù)到授權(quán)服務(wù)會(huì)話的指派關(guān)系。一個(gè)任務(wù)只有一個(gè)授權(quán)服務(wù)會(huì)話與其對(duì)應(yīng),而一個(gè)授權(quán)服務(wù)會(huì)話可以控制多個(gè)任務(wù)的執(zhí)行。
⑿ 服務(wù)授權(quán)服務(wù)會(huì)話的指派(SASSA):SASSASX ASS,是一對(duì)一的任務(wù)到授權(quán)服務(wù)會(huì)話的指派關(guān)系。一個(gè)服務(wù)只有一個(gè)授權(quán)服務(wù)會(huì)話與其對(duì)應(yīng)。
⒀ 權(quán)限授權(quán)服務(wù)會(huì)話的指派(PASSA):PASSAPX ASS,是多對(duì)多的任務(wù)到授權(quán)服務(wù)會(huì)話的指派關(guān)系。
⒁ 角色授權(quán)服務(wù)會(huì)話的指派(RASSA):RASSARX ASS,是多對(duì)多的任務(wù)到授權(quán)服務(wù)會(huì)話的指派關(guān)系。
ASS是工作流程運(yùn)行時(shí)的授權(quán)服務(wù)會(huì)話,在流程運(yùn)行時(shí)與任務(wù)對(duì)應(yīng)的服務(wù)實(shí)例SIns將與符合訪問(wèn)控制策略的用戶進(jìn)行關(guān)聯(lián)。即只有當(dāng)流程運(yùn)行時(shí),工作流系統(tǒng)才會(huì)根據(jù)各相關(guān)元素信息建立ASS,并將任務(wù)對(duì)應(yīng)的服務(wù)實(shí)例及其上的權(quán)限賦給相關(guān)用戶。服務(wù)調(diào)用結(jié)束后,用戶的權(quán)限將隨著服務(wù)實(shí)例的結(jié)束一并收回。這一過(guò)程實(shí)現(xiàn)了動(dòng)態(tài)責(zé)任分離的多用戶訪問(wèn)控制策略。
2 RBSWAC模型使用
下面通過(guò)一個(gè)簡(jiǎn)單的流程實(shí)例來(lái)說(shuō)明RBSWAC模型的設(shè)計(jì)和使用。該示例業(yè)務(wù)流程如圖2所示,這是一個(gè)企業(yè)采購(gòu)訂單的審核流程。
[T2:校對(duì)訂單][T1:制定訂單][T1:核算訂單][T1:訂單復(fù)核] [T5:訂單審批][T6:發(fā)送訂單][T7:訂單退回,
重新修改][金額小于1萬(wàn)][金額大于1萬(wàn)][批準(zhǔn)狀態(tài)yes][批準(zhǔn)狀態(tài)no]
圖2采購(gòu)訂單審核流程
圖3角色層次圖
根據(jù)上面的業(yè)務(wù)流程邏輯,系統(tǒng)涉及到以下角色:R1采購(gòu)經(jīng)理;R2采購(gòu)主管;R3采購(gòu)人員;R4財(cái)務(wù)經(jīng)理和R5財(cái)務(wù)人員。角色層次圖如圖3所示。
根據(jù)上面的業(yè)務(wù)流程邏輯,系統(tǒng)對(duì)應(yīng)的服務(wù)集合如下。
S={S1:制定訂單服務(wù),S2:校對(duì)訂單服務(wù),S3:訂單核算服務(wù),S4:訂單審批服務(wù),S5:發(fā)送訂單服務(wù)}
根據(jù)上面的業(yè)務(wù)流程邏輯,系統(tǒng)對(duì)應(yīng)的權(quán)限集合P為:
P={P1:制定訂單,P2:校對(duì)訂單,P3:訂單核算,P4:批準(zhǔn)訂單,P5:拒絕訂單,P6:發(fā)送訂單}
根據(jù)RBSWAC模型,可以為流程中各任務(wù)定義相關(guān)的授權(quán)服務(wù)會(huì)話。
制定訂單ass1={t1,(t1,s1),(t1,p1),(t1,r3)}
校對(duì)訂單ass2={t2,(t2,s2),(t2,p2),(t2,r2)}
訂單核算ass3={t3,(t3,s3),(t3,p3),(t3,r5)}
訂單復(fù)核ass4={t4,(t4,s3),(t4,p3),(t4,r4)}
訂單審批ass5={t5,(t5,s4),(t5,p4,p5),(t5,r1)}}
發(fā)送訂單ass6={t6,(t6,s5),(t6,p6),(t6,r3)}
訂單撤銷ass7={t7,(t7,s1),(t7,p1),(t7,r3)}
該業(yè)務(wù)流程實(shí)例的ASS集合與服務(wù)集合、權(quán)限集合、角色集合的關(guān)系如圖4所示。
圖4集合與集合之間的關(guān)系
當(dāng)任務(wù)實(shí)例化時(shí),工作流程系統(tǒng)在運(yùn)行時(shí)創(chuàng)建任務(wù)對(duì)應(yīng)的授權(quán)服務(wù)會(huì)話并將服務(wù)實(shí)例和對(duì)應(yīng)權(quán)限分派給合法的執(zhí)行用戶,即將授權(quán)服務(wù)會(huì)話對(duì)應(yīng)的服務(wù)、執(zhí)行角色集合和執(zhí)行權(quán)限集合中的權(quán)限賦予執(zhí)行用戶,任務(wù)完成后,授權(quán)服務(wù)會(huì)話將權(quán)限收回。
現(xiàn)假設(shè)在已定義好的業(yè)務(wù)流程中需要對(duì)訪問(wèn)控制策略進(jìn)行更改,在任務(wù)t2中校對(duì)訂單對(duì)應(yīng)的角色需要由采購(gòu)主管R2修改為采購(gòu)經(jīng)理R3。如果使用的是基于角色的工作流訪問(wèn)控制模型,則需要將流程模型任務(wù)T2的執(zhí)行角色R2刪除,同時(shí)在組織模型中將R2的P2權(quán)限撤除,再為R3角色添加P2權(quán)限,并將任務(wù)T2的執(zhí)行角色改為R3。而在RBSWAC模型中只需修改流程模型任務(wù)T2的TR關(guān)系,將(t2,r2)改為(t2,r3)即可。業(yè)務(wù)流程在執(zhí)行時(shí)會(huì)動(dòng)態(tài)調(diào)整對(duì)應(yīng)的授權(quán)服務(wù)會(huì)話ASS,并將對(duì)應(yīng)的服務(wù)、執(zhí)行角色集合和執(zhí)行權(quán)限集合中的權(quán)限賦予具體執(zhí)行用戶,任務(wù)完成后,授權(quán)服務(wù)會(huì)話將權(quán)限收回。同樣道理,當(dāng)流程模型需要改變時(shí)只要修改相應(yīng)流程模型的元素即可。
由上面的示例可見(jiàn),RBSWAC模型大大增加了訪問(wèn)控制的適應(yīng)性和靈活性,實(shí)現(xiàn)了訪問(wèn)控制模型同流程模型的松耦合和靈活性。
3 結(jié)束語(yǔ)
RBSWAC模型通過(guò)流程任務(wù)與角色、權(quán)限、服務(wù)的關(guān)聯(lián),以及流程模型和基于角色的組織模型的關(guān)聯(lián),實(shí)現(xiàn)了一個(gè)方便、靈活的工作流訪問(wèn)控制機(jī)制。在接下來(lái)的工作中,我們將根據(jù)實(shí)際SaaS平臺(tái)的安全需求和約束需求適當(dāng)引入新的功能特性, 進(jìn)一步改進(jìn)和完善RBSWAC的實(shí)現(xiàn)機(jī)制,同時(shí)將對(duì)不同類型約束的整合機(jī)制加以研究。
參考文獻(xiàn):
[1] 徐偉,魏峻,李京.面向服務(wù)的工作流訪問(wèn)控制模型研究[J].計(jì)算機(jī)研究與發(fā)展,2005.42(8):1369~1375
[2] 薛偉,懷進(jìn)鵬.基于角色的訪問(wèn)控制模型的擴(kuò)充和實(shí)現(xiàn)機(jī)制研究[J].計(jì)算機(jī)研究與發(fā)展,2003.40(11):1635~1641
[3] PCK Hung , K1 Karlapalem . Least privilege security in CapBasED2AMS1[J].International Journal of Cooperative Information Systems,1999.8(223):139~168
[4] 吳耀華,李寧. 適用于B /S 結(jié)構(gòu)的RBAC 模型研究及實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2004.24(12):8~87
[5] 陳波.基于SaaS的軟件服務(wù)鏈研究[D].碩士學(xué)位論文,武漢理工大學(xué),2008:1~48
[6] Workflow Management Coalition. Workflow securityconsiderations. Workflow Management Coalition[R], Technical Report.: WFMC2TC21019,1998