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