1 引言
SaaS是指軟件服務(wù)提供商為企業(yè)搭建信息化所需要的所有網(wǎng)絡(luò)基礎(chǔ)設(shè)施以及軟硬件運作平臺,并負責(zé)所有前期的實施,以及租戶使用過程中軟件的升級與維護等一系列的服務(wù)。租用的企業(yè)無需購買任何軟硬件、建設(shè)相關(guān)機房以及招聘工作人員等,即可通過互聯(lián)網(wǎng)使用信息管理系統(tǒng),對企業(yè)日常事務(wù)進行有效的管理“。。隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,SaaS正在全球興起,特別是中小型企業(yè),由于規(guī)模小,普遍存在著資金匱乏、管理水平低下、技術(shù)人才缺乏的問題。SaaS的多租戶、按需付費的方式正好可以滿足中小企業(yè)的IT管理需求。SaaS模式的一個典型特征是“單實例多租戶”,即多個租戶共享服務(wù)提供商的—個應(yīng)用實例,不同租戶的數(shù)據(jù)、服務(wù)在物理上共享,而在邏輯上完全隔離,對于每個租戶來說這個實例好像只為自己服務(wù)一樣。SaaS平臺用戶比較復(fù)雜,包括平臺管理員,平臺角色,租戶管理員,租戶用戶,租戶角色。平臺管理員只能管理租戶的賬號和相關(guān)信息,不能操作租戶的內(nèi)部業(yè)務(wù)。各租戶擁有自己的角色和權(quán)限,相互不能影響。為了確保系統(tǒng)中數(shù)據(jù)的安全性、一致性、完整性,使客戶能夠放心地將具有重要性、機密性的商業(yè)數(shù)據(jù)交給SaaS服務(wù)提供商進行管理和控制,在開發(fā)—個SaaS系統(tǒng)的過程中,作為SaaS系統(tǒng)的重要組成部分——權(quán)限管理變得尤為重要。由于增加了租戶的概念,增加了SaaS平臺安全訪問管理的難度,本文在研究基于角色的訪問控制(RBAC)模型的基礎(chǔ)上,提出了SaaS平臺的一種權(quán)限管理模型,并以餐飲管理系統(tǒng)為例實現(xiàn)了該模型。
2 訪問控制研究現(xiàn)狀
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,大型網(wǎng)絡(luò)應(yīng)用系統(tǒng)所面臨的一個難題就是數(shù)據(jù)資源的安全問題,訪問控制為解決信息系統(tǒng)安全性問題提供了重要保障,它能使經(jīng)過授權(quán)的用戶正常合法地使用已授權(quán)的功能,而將那些未授權(quán)的非法用戶拒之門外Ⅲ。訪問控制是指限制主體可以訪問哪些客體。在訪問控制模型中,主體和客體是兩個重要概念。主體是指可以授予或拒絕訪問某個對象的人或事物,如用戶、程序、系統(tǒng)進程?腕w的例子如文件、打印機、程序、系統(tǒng)進程等。目前的主流訪問控制技術(shù)有:自主訪問控制(DAc)、強制訪問控制(MAc)、基于角色的訪問控制(ImAc)。
自主訪問控制DAC(Discretionary Access Control)是主體對自己的客體進行管理,由主體自己決定是否將自己的客體訪問權(quán)或部分訪問權(quán)授予其他主體。DAC的優(yōu)點是其自主性為用戶提供了極大的靈活性,但是DAC主要針對用戶個人授予權(quán)限,隨著用戶的增多,用戶授權(quán)將會變得非常復(fù)雜,不能適應(yīng)SaaS平臺訪問控制的需要。
強制訪問控制MAC(Mandatory Access Control)是由管理員來設(shè)定主體和客體的安全級別來決定主體是否有對客體的訪問權(quán),而普通用戶不能對自己的資源進行授權(quán)供其他用戶使用。自主訪問控制采用集權(quán)式管理用戶權(quán)限,缺乏靈活性,不能適應(yīng)SaaS平臺訪問控制的需要。
基于角色的訪問控制RBAC(Role-Based Access Control)是由Ferraiolo等人提出的。RBAC的基本思想是在用戶和訪問權(quán)限之間引入角色的概念,將用戶和角色聯(lián)系起來,通過對角色的授權(quán)來控制用戶對系統(tǒng)資源的訪問川。通過將權(quán)限指定給角色而不是用戶在權(quán)限分派上提供了極大的靈活性和極細的權(quán)限指定粒度。
國內(nèi)學(xué)者對訪問控制也做了大量研究,張學(xué)敏等人提出了針對MIS系統(tǒng)進行動態(tài)權(quán)限管理的方法,解決了企業(yè)動態(tài)權(quán)限管理的問題;蔡昭權(quán)提出了基于業(yè)務(wù)無關(guān)的權(quán)限管理方法,將權(quán)限管理和業(yè)務(wù)管理分開,以達到權(quán)限管理功能的復(fù)用;鄧集波,等人提出基于任務(wù)的訪問控制模型,能夠很好解決工作流管理中隨著任務(wù)的執(zhí)行而動態(tài)進行權(quán)限分配的問題。由于s硯s平臺中加入了租戶的概念,平臺的數(shù)據(jù)模型和管理方式和傳統(tǒng)的管理系統(tǒng)不同,以上方法不能很好地解決SaaS平臺下的用戶訪問控制問題。當(dāng)前,針對SaaS平臺訪問控制研究較少,Danchen Li基于RBAC模型采用分層的方法h卜對SaaS平臺提出了—種訪問控制方法,解決了SaaS訪問角色命名沖突等問題,但該方法缺少實現(xiàn)方法的探討。
Jing xu也針對SaaS平臺提出了一種訪問控制方法,該方法禁用了角色的繼承關(guān)系,并通過UML圖展示用戶訪問SaaS平臺的流程,但該方法中角色和租戶是多對關(guān)系.如果不同租戶對統(tǒng)一角色進行不同權(quán)限設(shè)置,則容易產(chǎn)生沖突,并且該模型未涉及用戶對資源操作的控制。
在SaaS系統(tǒng)中,租戶組成了—個個獨立的安全域,SaaS平臺管理員只可以對租戶的賬號進行管理,不能影響租戶的內(nèi)部業(yè)務(wù)操作,各租戶由于內(nèi)部業(yè)務(wù)分工不同,用戶又劃分為不同的角色。各租戶內(nèi)部的角色和用戶只能訪問該租戶擁有的資源,不能超于租戶的資源范圍進行操作。本文在研究基于角色的訪問控制(RBAC)模型的基礎(chǔ)上,提出了SaaS平臺的一種權(quán)限管理模型,解決了多租戶環(huán)境下用戶權(quán)限分配以及安全訪問的問題。
3 SaaS訪問控制模理
3.1 RBAC模型簡介
RBAC96型是幽基于角色的訪問控制模型。RBAC96模型由于系統(tǒng)全面地描述了RBAC多方面、多層次的意義而得到了廣泛的認可。RBAC96模型包括RBAC0、RBAC1、RBAC2和RBAC3四個不同層次的模型。其中RBAC0是基礎(chǔ)模型,定義了支持RBAC的最小需求,如用戶、角色、權(quán)限、會話等概念,RBAC0如圖l所示。在RBACI中加入了角色繼承關(guān)系,可以根據(jù)組織內(nèi)部權(quán)力和責(zé)任的結(jié)構(gòu)來構(gòu)造角色與角色之間的層次關(guān)系;在RBAC2中加入了各種用戶與角色之間、權(quán)限與角色之間以及角色與角色之間的約束關(guān)系,如角色互斥、角色最大成員數(shù)等。RBAC3是對RBAC1和RBAC2的集成,它不僅包括角色的層次關(guān)系,還包括約束關(guān)系。在RBAC模型中,角色是系統(tǒng)根據(jù)管理中相對穩(wěn)定的職權(quán)和責(zé)任來劃分,每種角色可以完成一定的職能。用戶通過飾演不同的角色獲得角色所擁有的權(quán)限,一旦某個用戶成為某角色的成員,則此用戶可以完成該角色所具有的職能。通過將權(quán)限指定給角色而不是用戶在權(quán)限分派上提供了極大的靈活性和極細的權(quán)限指定粒度。本文基于RBAC模型提出了SaaS平臺訪問控制模型SRBAC。
圖1 RBACO模型圖
3.2 SaaS平臺用戶分析
由圖2可以看出,在SaaS平臺中,各租戶可以通過Intcrnct獨立訪問SaaS平臺,各租戶之間相互沒有影響,就像使用一套獨立的軟件系統(tǒng)。
各租戶又由多個用戶來共同使用SaaS平臺,這些用戶由于分工不同又可以劃分為不同的角色。SaaS平臺由平臺供應(yīng)商統(tǒng)一管理包括用戶租費的管理、帶寬的分配、數(shù)據(jù)的備份等。SaaS平臺用戶可分為以下幾種。
平臺管理員:負責(zé)平臺的日常維護和管理,包括用戶日志的管理、租戶賬號審核、租戶狀態(tài)管理、租戶費用的管理,租戶權(quán)限的管理,要注意的是平臺管理員不能對租戶的具體業(yè)務(wù)進行管理。如果租戶數(shù)量大,還可以對平臺管理員劃分角色,可以按地域劃分,比如西北地區(qū)、東北地區(qū)等,讓平臺管理員分別管理不同的租戶;也可以根據(jù)業(yè)務(wù)進行劃分,比如租戶管理員,租費管理員等。
租戶:指訪問SaaS平臺的用戶企業(yè),在SaaS平臺中各租戶之間信息是獨立的。租戶信息包括租戶的名稱、地址等租戶企業(yè)的相關(guān)信息,主要用來區(qū)別各租戶,并且由平臺管理員對租戶賬號狀態(tài)進行管理。各租戶可根據(jù)需要自行選擇SaaS平臺功能模塊并依此付費。
租戶用戶:根據(jù)租戶管理員分配的權(quán)限以及自己的角色進行相關(guān)的業(yè)務(wù)管理。各租戶用戶只能訪問該租戶選擇的SaaS平臺的功能模塊。
租戶角色:根據(jù)業(yè)務(wù)功能分由租戶管理員進行角色劃分,劃分好角色后,租戶管理員可以對相應(yīng)的角色進行權(quán)限分配。
圖2 Saas餐飲管理平臺功能結(jié)構(gòu)圖
3.3形式化描述
基于角色的訪問控制是一種非常有潛力的訪問控制技術(shù),其基本觀念是:分配給每一個用戶合適的角色,每一個角色都具有其對應(yīng)的權(quán)限,角色是安全控制策略的核心,這極大地簡化了安全管理,特別適用于大規(guī)模的企業(yè)應(yīng)用。由于SaaS平臺引入租戶的概念,各租戶之間不能互相訪問資源,數(shù)據(jù)保持獨立,各租戶用戶只能在自己租戶的范圍內(nèi)使用系統(tǒng)資源,因此需要對基于角色的訪問控制進行改造以適應(yīng)SaaS平臺的權(quán)限管理的需要。和RBAC模型相比,SaaS平臺權(quán)限管理包括六個基本元素集合。
(1)租戶:SaaS平臺的使用企業(yè),各租戶用戶只能在租戶許可的范圍內(nèi)使用系統(tǒng),記作Tenants={t1,t2,…,tn},表示所有租戶的集合。
(2)用戶:可以獨立訪問系統(tǒng)中的數(shù)據(jù)的主體,記作Users={u1,u2,…u3},表示所有用戶的集合,在SaaS平臺中用戶包括SaaS平臺管理員和租戶用戶。
(3)角色:指—個組織或任務(wù)中的工作或崗位,記作Rolses={r1,r2,…rn},表示所有角色的集合,用戶擁有自己所屬的角色的權(quán)限的并集,在SaaS平臺中角色包括平臺管理類角色和租戶自定義角色。
(4)資源:所有需要設(shè)置權(quán)限的窗口的通稱,例如一個頁面、某個窗口、某一部分數(shù)據(jù),都是一種資源,記作Resources={res1,res2,…resn},在SaaS平臺中表示所有頁面的集合。
(5)操作:對資源的操作,比如刪除、新增、修改、打印等,記作Operations={Op1,Op2,…Opn),表示所有操作的集合。
(6)訪問權(quán)限:表示允許對資源進行的各項操作,記作Auths={a1,a2,…,an},表示所有訪問權(quán)限的集合。SaaS平臺基于角色的訪問控制方法的顯著的兩大特征是:
(1)在每個租戶內(nèi)部,由于角色/權(quán)限之間的變化比角色/用戶關(guān)系之間的變化相對要慢得多,減小了授權(quán)管理的復(fù)雜性,降低管理開銷。
(2)靈活地支持企業(yè)的安全策略,并對企業(yè)的變化有很大的伸縮性。
SaaS平臺基于角色的訪問控制授權(quán)模型如圖3所示。在該模型中,用戶U和角色R,角色R和權(quán)限A,資源和操作之間都是多對多關(guān)系,即:同一用戶可以有多種角色,同一角色可以賦予多個用戶;同一角色可對多個資源有訪問權(quán)限,同一資源可賦權(quán)給多個角色。角色是系統(tǒng)根據(jù)管理中相對穩(wěn)定的職權(quán)和責(zé)任來劃分,每種角色可以完成一定的職能。用戶通過飾演不同的角色獲得角色所擁有的權(quán)限,一旦某個用戶成為某角色的成員,則此用戶可以完成該角色所具有的職能。通過將權(quán)限指定給角色而不是用戶在權(quán)限分派上提供了極大的靈活性和極細的權(quán)限指定粒度。
圖3 SaaS平臺訪問控制模型圖
下面給出適合于SaaS平臺的訪問控制模型的形式化描述:
租戶權(quán)限指派:租戶集Tenants和權(quán)限集Auths之間的—個二元關(guān)系,TA∈Tenants×Auths。租戶和權(quán)限之間是多對多關(guān)系,即—個租戶可以擁有多個權(quán)限,—個權(quán)限也可以分配給多個租戶。在SaaS平臺中,租戶可以根據(jù)自己的業(yè)務(wù)選擇權(quán)限并依此付費。
租戶用戶創(chuàng)建:租戶集Tenants和用戶集Users之間的—個二元關(guān)系,TU∈Tenants×Users。租戶和用戶之間是一對多關(guān)系,—個稠戶可以有多個用戶,—個用戶只能屬于某—個相戶。用戶只能訪問所屬租戶下的相應(yīng)權(quán)限,不能超越跨租戶訪問系統(tǒng)。
租戶角色創(chuàng)建:租戶集Tenants和角色集勘脅之間的—個二元關(guān)系,TR∈Tenants×Roles。在傳統(tǒng)編程模式下,用戶和角色之間是多對多關(guān)系,即—個用戶可以擁有多種角色,一種角色也可以屬于多個用戶。在SaaS模式下,為保證各租戶自定義的角色不發(fā)生沖突,租戶和角色之間是一對多關(guān)系,即—個租戶可以設(shè)置多個角色,—個角色只能屬于—個租戶,在SaaS平臺中允許每個租戶自己定義角色以方便權(quán)限管理,為避免各租戶角色定義混亂,租戶角色只在所屬租戶范圍內(nèi)有效。
角色權(quán)限配置:角色集Roles和訪問權(quán)限集Auths之間的二元關(guān)系,RA∈Roles×Auths∈TA。角色和權(quán)限之間是多對多關(guān)系,—個角色可以有多種權(quán)限,每種權(quán)限可以屬于多個角色。在SaaS平臺中角色只能擁有所屬租戶權(quán)限內(nèi)的相關(guān)權(quán)限。
用戶角色分配:角色集Roles和用戶集Users之間的二元關(guān)系,UR∈Users×Roles。在SaaS平臺中,用戶和角色之間是多對多關(guān)系,用戶只能擁有所屬租戶的權(quán)限,該租戶的權(quán)限也只能分配給此租戶所有的用戶。
資源操作配置:資源集合Resources和操作集合Operations之間的二元關(guān)系,ReO∈ResourcesxOperations,那么(re,0)∈ReO表示資源r具有o操作。返回指定角色的用戶集:return_users(r:Roles)={u∈Users|(u,r)∈UR}。
利用此模式,即使租戶的權(quán)限體系變化導(dǎo)致用戶、角色和權(quán)限及其相互關(guān)聯(lián)的變化,系統(tǒng)也可以很簡單地通過配置解決這個問題,并且很好地解決了平臺管理員、租戶、租戶用戶之間復(fù)雜的訪問控制問題。
4 應(yīng)用實例
本文所設(shè)計的SaaS平臺權(quán)限管理模型已成功應(yīng)用于SaaS餐飲管理平臺(http://www.xa001.net)。該SaaS平臺支持多租戶的訪問,并可以對用戶進行靈活的權(quán)限管理。該餐飲管理平臺主要包括餐桌使用情況、客戶開臺、點菜、結(jié)賬、餐廳菜品的入庫、庫存管理、查詢統(tǒng)計等基本功能和宣傳網(wǎng)站、網(wǎng)上訂餐、短信提醒等可選功能。由于中小型餐飲企業(yè)規(guī)模小,對信息化投入低,因此基于SaaS的餐飲管理系統(tǒng)既可以滿足中小型餐飲企業(yè)日常管理的需求,又可以根據(jù)用戶的需求支付較低的使用費即可。
4.1操作流程
SaaS餐飲管理平臺用戶可分為以下幾種:
平臺管理員:負責(zé)所有餐飲企業(yè)賬戶、權(quán)限、租費管理。
餐飲企業(yè)管理員:負責(zé)本餐飲企業(yè)角色劃分、權(quán)限分配、日志管理、數(shù)據(jù)備份等工作。
前臺管理員:開臺、點菜、結(jié)賬等業(yè)務(wù)。
庫房管理員:菜品入庫、庫存管理、菜品補庫、盤庫等工作。大堂經(jīng)理:營業(yè)睛況查看。
餐館老板:每日、周、月、季、年的經(jīng)營情況、費用情況、盈
利情況查看。下面來看一下SaaS餐飲管理平臺訪問控制的兩個重要流程。
(1)注冊流程
在SaaS餐飲管理平臺中,租戶注冊流程如圖4所示。首先用戶登記租戶信息,包括企業(yè)名稱、地址、聯(lián)系電話、所在省市等企業(yè)基本信息,接下來填寫管理員賬號(以后就可以用這個管理員賬號創(chuàng)建租戶內(nèi)部用戶以及分配權(quán)限),平臺管理員審核通過后租戶就可以通過創(chuàng)建的租戶管理員賬號登錄平臺進行功能試用,如果租戶試用滿意就可以選擇自己需要的功能進行付費,管理員收到用戶付費信息后就可以將用戶轉(zhuǎn)為正式用戶。此時租戶用戶可以根據(jù)自己企業(yè)需求來管理用戶,為租戶用戶分配權(quán)限。
(2)登錄流程
用戶登錄流程如圖5所示。用戶在SaaS平臺輸入賬號和密碼,如果用戶通過平臺驗證首先獲取該用戶所屬租戶信息,然后獲取該用戶所屬角色信息,最后通過該用戶角色獲取其對應(yīng)的權(quán)限,這時用戶就可以正常使用平臺功能了。
圖4注冊流程 圖5登錄流程圖
4.2訪問控制數(shù)據(jù)庫設(shè)計
根據(jù)上面的用戶和操作流程分析,設(shè)計基于SaaS的餐飲管理平臺訪問控制部分的數(shù)據(jù)庫。訪問控制部分主要包括用戶表、租戶表、角色表、權(quán)限表、資源表和操作表。對這些表的定義如下:
(1)用戶表(User),存儲SaaS平臺用戶信息。需要注意的是用戶分為租戶用戶和平臺管理員,租戶用戶必須隸屬于某一租戶,只能訪問該租戶擁有的資源。
表1用戶表(User)
(2)租戶表(Tenant),用來保存租戶相關(guān)信息。租戶編號用來唯一標(biāo)記—個租戶企業(yè)。
表2資源表(Resource)
(3)角色表(Role),存儲系統(tǒng)所有角色信息,角色可以由用戶自由劃分。需要注意的是在本模型中,租戶和角色是一對多關(guān)系,因此租戶用戶可以自由劃分角色,不會和其他租戶角色混淆。角色表信息如表3。
表3角色表(Role)
(4)權(quán)限表(Auth),存儲每個資源的操作。比如資源用戶管理的編號(ResourceID)為1,操作對應(yīng)為1添加,2修改,3刪除,4打印。如果用戶管理需要有添加、修改、刪除操作,那么權(quán)限表(Auth)就應(yīng)該存儲1,1,1;2,1,2;3,1,3三組數(shù)據(jù)。
表4權(quán)限表(Auth)
(5)資源表(Resource),用來保存系統(tǒng)所有資源,對于本系統(tǒng)而言,就是指平臺頁面。
表5資源表(Resource)
(6)操作表(Operation),存儲平臺頁面上所有需要有權(quán)限控制的操作,比如增加、修改、刪除、打印等。
表6操作表(Operation)
除了以上基本表,訪問控制部分還要涉及到表和表之間的關(guān)系表,如用戶租戶表、租戶權(quán)限表、用戶角色表、租戶角色表、角色權(quán)限表等。
5 總結(jié)
分析了SaaS平臺訪問控制的特點,結(jié)合基于角色的訪問控制模型,設(shè)計了一種適合SaaS平臺的訪問控制模型,并以該模型為基礎(chǔ)實現(xiàn)了基于SaaS平臺的餐飲管理系統(tǒng)(http:8www.xa001.net)。該模型可以靈活地處理租戶和租戶、租戶和用戶、用戶和角色等之間的關(guān)系,使用該模型,可以方便進行用戶的權(quán)限管理并保證了用戶的數(shù)據(jù)安全。在SaaS平臺安全設(shè)計時除了權(quán)限控制,還要考慮用戶數(shù)據(jù)的隱私性保護、數(shù)據(jù)傳輸層的安全性、數(shù)據(jù)庫的冗余備份、入侵檢測等諸多安全因素,這也是后續(xù)工作的研究重點。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:SaaS平臺訪問控制研究
本文網(wǎng)址:http://www.ezxoed.cn/html/support/11121510196.html