1姓建、系統(tǒng)需求
平臺管理員只能管理租戶的賬號和相關信息诞仓,不能操作租戶的內(nèi)部業(yè)務。各租戶擁有自己的角色和權限速兔,相互不能影響墅拭。不同租戶的數(shù)據(jù)、服務在物理上共享涣狗,而在邏輯上完全隔離谍婉,對于每個租戶來說這個系統(tǒng)好像只為自己服務。為了確保系統(tǒng)數(shù)據(jù)的安全性镀钓,使用戶能放心地將商業(yè)數(shù)據(jù)放在系統(tǒng)上使用穗熬,SaaS系統(tǒng)的權限管理在系統(tǒng)設計中成為尤為重要的一環(huán)。
2丁溅、RBAC權限模型
訪問控制是針對越權使用資源的防御措施唤蔗,目的是為了限制訪問主體(如用戶等) 對訪問客體(如數(shù)據(jù)庫資源等)的訪問權限。企業(yè)環(huán)境中的訪問控制策略一般有三種: 自主訪問控制(DAC)、強制訪問控制(MAC)和基于角色的訪問控制(RBAC)妓柜。其中箱季,自主訪問、強制訪問的工作量大棍掐,不便于管理藏雏。基于角色的訪問控制是目前公認的解決大型企業(yè)的統(tǒng)一資源訪問控制的有效方法作煌。
基于角色的訪問控制基本原理是在用戶和訪問權限之間加入角色這一層诉稍,實現(xiàn)用戶和權限的分離,用戶只有通過激活角色才能獲得訪問權限最疆。通過角色對權限分組杯巨,大大簡化了用戶權限分配表,間接地實現(xiàn)了對用戶的分組努酸,提高了權限的分配效率服爷。且加入角色層后,訪問控制機制更接近真實世界中的職業(yè)分配获诈,便于權限管理仍源。
RBAC模型是典型的基于角色的訪問控制模型,包括RBAC0舔涎、RBAC1笼踩、RBAC2和RBAC3四個不同層次的模型。其中RBAC0是基礎模型亡嫌,定義了支持RBAC的最小需求嚎于,如用戶、角色挟冠、權限于购、會話等概念,RBAC0模型圖解如圖2-1所示知染。RBAC1加入了角色繼承關系肋僧,可以根據(jù)組織內(nèi)部權力和責任的結(jié)構來構造角色與角色之間的層次關系; RBAC2加入了各種用戶與角色之間、權限與角色之間以及角色與角色之間的約束關系控淡,如角色互斥嫌吠、角色最大成員數(shù)等。RBAC3是對RBAC1和RBAC2的集成掺炭,它不僅包括角色的層次關系辫诅,還包括約束關系。
在RBAC模型中竹伸,角色是系統(tǒng)根據(jù)管理中相對穩(wěn)定的職權和責任來劃分泥栖,每種角色可以完成一定的職能。用戶通過飾演不同的角色獲得角色所擁有的權限勋篓,一旦某個用戶成為某角色的成員吧享,則此用戶可以完成該角色所具有的職能。通過將權限指定給角色而不是用戶譬嚣,在權限分派上提供了極大的靈活性和極細的權限指定粒度钢颂。
圖2-1 RBAC0模型圖解
3、SaaS平臺用戶設計
一般SaaS平臺基本角色由平臺管理員拜银、租戶用戶殊鞭、租戶管理員、租戶其他角色組成尼桶。如圖2-2以O2O業(yè)務的企業(yè)架構為例操灿,圖解系統(tǒng)角色關系。
圖2-2 SaaS平臺用戶設計圖解
平臺管理員:負責平臺的日常維護和管理泵督,包括用戶日志的管理趾盐、租戶賬號審核、租戶狀態(tài)管理小腊、租戶費用的管理救鲤,租戶權限的管理,要注意的是平臺管理員不能對租戶的具體業(yè)務進行管理秩冈。如果租戶數(shù)量大本缠,還可以對平臺管理員劃分角色,可以按地域劃分入问,比如西北地區(qū)丹锹、東北地區(qū)等,讓平臺管理員分別管理不同的租戶芬失;也可以根據(jù)業(yè)務進行劃分卷仑,比如租戶管理員,租費管理員等麸折。
租戶:指訪問SaaS平臺的用戶企業(yè)锡凝,在SaaS平臺中各租戶之間信息是獨立的。租戶信息包括租戶的名稱垢啼、地址等租戶企業(yè)的相關信息窜锯,主要用來區(qū)別各租戶,并且由平臺管理員對租戶賬號狀態(tài)進行管理芭析。各租戶可根據(jù)需要自行選擇SaaS平臺功能模塊并依此付費锚扎。
租戶管理員:為租戶角色分配權限和相關系統(tǒng)管理、維護馁启。
租戶用戶:根據(jù)租戶管理員分配的權限以及自己的角色進行相關的業(yè)務管理驾孔。各租戶用戶只能訪問該租戶選擇的 SaaS 平臺的功能模塊芍秆。一個系統(tǒng)用戶如果有多個角色,則他只能看到當前角色下的數(shù)據(jù)翠勉,通過角色切換妖啥,可以達到查看所屬其他角色下的數(shù)據(jù)信息。
租戶角色:根據(jù)業(yè)務功能分由租戶管理員進行角色劃分对碌,劃分好角色后荆虱,租戶管理員可以對相應的角色進行權限分配。角色有上下級關系朽们,上級可以查看下級的數(shù)據(jù)怀读,下級不能訪問上級的數(shù)據(jù),平級之間不能相互訪問骑脱。角色上層可再加入分組層(如分部門或團隊等)菜枷,不同組別的數(shù)據(jù)范圍不同,資源叁丧、操作可以共享也可以隔離犁跪。