SaaS系統用戶權限設計
作者的上一篇文章簡單介紹了SaaS系統的概念和SaaS的成熟度模型。隨著云計算的發展,越來越多企業產品業務向軟件服務平臺轉型。其中系統的權限設計是十分關鍵和重要的部分,本文以O2O業務為例講解SaaS系統權限設計。
1、系統需求
平臺管理員只能管理租戶的賬號和相關信息,不能操作租戶的內部業務。各租戶擁有自己的角色和權限,相互不能影響。不同租戶的數據、服務在物理上共享,而在邏輯上完全隔離,對于每個租戶來說這個系統好像只為自己服務。為了確保系統數據的安全性,使用戶能放心地將商業數據放在系統上使用,SaaS系統的權限管理在系統設計中成為尤為重要的一環。
2、RBAC權限模型
訪問控制是針對越權使用資源的防御措施,目的是為了限制訪問主體(如用戶等) 對訪問客體(如數據庫資源等)的訪問權限。企業環境中的訪問控制策略一般有三種: 自主訪問控制(DAC)、強制訪問控制(MAC)和基于角色的訪問控制(RBAC)。其中,自主訪問、強制訪問的工作量大,不便于管理。基于角色的訪問控制是目前公認的解決大型企業的統一資源訪問控制的有效方法。
基于角色的訪問控制基本原理是在用戶和訪問權限之間加入角色這一層,實現用戶和權限的分離,用戶只有通過激活角色才能獲得訪問權限。通過角色對權限分組,大大簡化了用戶權限分配表,間接地實現了對用戶的分組,提高了權限的分配效率。且加入角色層后,訪問控制機制更接近真實世界中的職業分配,便于權限管理。
RBAC模型是典型的基于角色的訪問控制模型,包括RBAC0、RBAC1、RBAC2和RBAC3四個不同層次的模型。其中RBAC0是基礎模型,定義了支持RBAC的最小需求,如用戶、角色、權限、會話等概念,RBAC0模型圖解如圖2-1所示。RBAC1加入了角色繼承關系,可以根據組織內部權力和責任的結構來構造角色與角色之間的層次關系; RBAC2加入了各種用戶與角色之間、權限與角色之間以及角色與角色之間的約束關系,如角色互斥、角色最大成員數等。RBAC3是對RBAC1和RBAC2的集成,它不僅包括角色的層次關系,還包括約束關系。
在RBAC模型中,角色是系統根據管理中相對穩定的職權和責任來劃分,每種角色可以完成一定的職能。用戶通過飾演不同的角色獲得角色所擁有的權限,一旦某個用戶成為某角色的成員,則此用戶可以完成該角色所具有的職能。通過將權限指定給角色而不是用戶,在權限分派上提供了極大的靈活性和極細的權限指定粒度。
圖2-1 RBAC0模型圖解
3、SaaS平臺用戶設計
一般SaaS平臺基本角色由平臺管理員、租戶用戶、租戶管理員、租戶其他角色組成。如圖2-2以O2O業務的企業架構為例,圖解系統角色關系。
圖2-2 SaaS平臺用戶設計圖解
平臺管理員:負責平臺的日常維護和管理,包括用戶日志的管理、租戶賬號審核、租戶狀態管理、租戶費用的管理,租戶權限的管理,要注意的是平臺管理員不能對租戶的具體業務進行管理。如果租戶數量大,還可以對平臺管理員劃分角色,可以按地域劃分,比如西北地區、東北地區等,讓平臺管理員分別管理不同的租戶;也可以根據業務進行劃分,比如租戶管理員,租費管理員等。
租戶:指訪問SaaS平臺的用戶企業,在SaaS平臺中各租戶之間信息是獨立的。租戶信息包括租戶的名稱、地址等租戶企業的相關信息,主要用來區別各租戶,并且由平臺管理員對租戶賬號狀態進行管理。各租戶可根據需要自行選擇SaaS平臺功能模塊并依此付費。
租戶管理員:為租戶角色分配權限和相關系統管理、維護。
租戶用戶:根據租戶管理員分配的權限以及自己的角色進行相關的業務管理。各租戶用戶只能訪問該租戶選擇的 SaaS 平臺的功能模塊。一個系統用戶如果有多個角色,則他只能看到當前角色下的數據,通過角色切換,可以達到查看所屬其他角色下的數據信息。
租戶角色:根據業務功能分由租戶管理員進行角色劃分,劃分好角色后,租戶管理員可以對相應的角色進行權限分配。角色有上下級關系,上級可以查看下級的數據,下級不能訪問上級的數據,平級之間不能相互訪問。角色上層可再加入分組層(如分部門或團隊等),不同組別的數據范圍不同,資源、操作可以共享也可以隔離。
4、小結
本文就SaaS系統權限設計作簡單講解,后續文章將會講解SaaS系統產品設計的其他環節,謝謝閱讀。
相關閱讀
本文由 @?ohdkooou 原創發布于人人都是產品經理。未經許可,禁止轉載。
沒講明白透徹
你這套,租戶能創建自己的組織架構和用戶體系嗎,不跟其他租戶共享的?
你好,有一點我沒太明白,權限在角色是,是不是意味著每個租戶是一個角色;不然怎么保證每個租戶看到的菜單不一致
每一個租戶是一個用戶或者一個賬號?
講的很好!非常感謝!
對于角色上下級關系、角色互斥能不能再詳細說下,或者舉個實際案例,感謝
請教個問題,每個租戶都有自己的一套用戶角色權限系統嗎? 還是整個SaaS共用一套角色權限系統
每個租戶都會有一套自己的角色權限系統(也是基于權限控制的)
這個是不是還是可以理解為整個系統共用一套角色權限設置,只是設計時按照多租戶模式設計的?
再詳細一些,講一講細粒度權限劃分吧。
受益匪淺,贊贊贊
請問SaaS系統的單用戶和多用戶有哪些區別?產品設計方面有什么不同?方便的話可不可以加一下微信。
你好,我們最近也涉及這塊,單租戶和多租戶設計模式等問題,方便加V交流嗎?
請教下,平臺管理員對應的登錄賬戶,是如何獲得管理員權限的呢?如果平臺管理員帳號對應的帳號因故失效,如何將當前的平臺管理員所對應的賬號替換掉?
請教一下作者,文中的圖是用什么軟件做的呢
AXURE就可以做, 還有一般的做圖工具應該都可以做出來吧
之前也設計過兩個個SAAS平臺用戶管理系統,覺得文章大體的總結是沒問題的,但是沒有真正涉及到SAAS這個模塊,例如大平臺下多系統的權限管理這個概念,可以有不同的設計,如:同一個角色可以跨系統操作,以租戶的實際需要進行設置;或者,按照系統進行單獨角色權限設置,沒有跨系統角色權限的設置,;這些都可以容納到整個SAAS平臺用戶管理系統中
你好,最近在做權限管理系統,方便加個好友交流下嗎?
抱歉沒有經常上這個賬號,不知道您的問題是否有被解決,如果有需要可以加我微信:ljx3558418,大家可以互相交流~
可以分享下這方面詳細的內容嗎?蟹蟹
麻煩請教作者,根據文中的描述,組織架構的建立是依靠角色直接的層級和分組關系,這里面其實是沒有單獨的職位的概念的,是么
角色和組織架構是分開的。比如市場經理和產品經理,是組織架構,我可以把他們都分在經理角色下,讓他們都有權看到每個月的銷售業績。
是的,您說的這個是現在做得比較多的做法,組織架構決定用戶層級,角色決定權限,而角色的賦予和用戶本身的組織結構節點是沒有關系的。
我看作者文里的意思好像是說可以通過角色的上下級關系直接形成組織架構節點,用戶通過分配角色而自動產生組織架構。不知道我理解的對不對。如果是這樣的話,用戶-角色-權限更符合人-職位-職能的線下邏輯,不過在組織架構的調整上會帶來很多冗余。
嗯,不過按角色自動產生組織架構,感覺不太靈活。可能不同組織架構下的人員都具有相同的權限,如果這樣就還是要設置多個角色了。
是的哈
手動贊 ??
寫的太粗了
這都粗?發個細的來,我覺得作者總結的很好,還有哪些方面沒涉及到,歡迎補充,我再去仔細學習。
確實粗,哪些方面沒涉及 ?你就搜后臺權限設計,很多的~
確實粗啊,只是建立了一個基本結構