SaaS系統(tǒng)用戶權(quán)限設(shè)計

30 評論 106262 瀏覽 592 收藏 7 分鐘

作者的上一篇文章簡單介紹了SaaS系統(tǒng)的概念和SaaS的成熟度模型。隨著云計算的發(fā)展,越來越多企業(yè)產(chǎn)品業(yè)務(wù)向軟件服務(wù)平臺轉(zhuǎn)型。其中系統(tǒng)的權(quán)限設(shè)計是十分關(guān)鍵和重要的部分,本文以O(shè)2O業(yè)務(wù)為例講解SaaS系統(tǒng)權(quán)限設(shè)計。

1、系統(tǒng)需求

平臺管理員只能管理租戶的賬號和相關(guān)信息,不能操作租戶的內(nèi)部業(yè)務(wù)。各租戶擁有自己的角色和權(quán)限,相互不能影響。不同租戶的數(shù)據(jù)、服務(wù)在物理上共享,而在邏輯上完全隔離,對于每個租戶來說這個系統(tǒng)好像只為自己服務(wù)。為了確保系統(tǒng)數(shù)據(jù)的安全性,使用戶能放心地將商業(yè)數(shù)據(jù)放在系統(tǒng)上使用,SaaS系統(tǒng)的權(quán)限管理在系統(tǒng)設(shè)計中成為尤為重要的一環(huán)。

2、RBAC權(quán)限模型

訪問控制是針對越權(quán)使用資源的防御措施,目的是為了限制訪問主體(如用戶等) 對訪問客體(如數(shù)據(jù)庫資源等)的訪問權(quán)限。企業(yè)環(huán)境中的訪問控制策略一般有三種: 自主訪問控制(DAC)、強制訪問控制(MAC)和基于角色的訪問控制(RBAC)。其中,自主訪問、強制訪問的工作量大,不便于管理?;诮巧脑L問控制是目前公認的解決大型企業(yè)的統(tǒng)一資源訪問控制的有效方法。

基于角色的訪問控制基本原理是在用戶和訪問權(quán)限之間加入角色這一層,實現(xiàn)用戶和權(quán)限的分離,用戶只有通過激活角色才能獲得訪問權(quán)限。通過角色對權(quán)限分組,大大簡化了用戶權(quán)限分配表,間接地實現(xiàn)了對用戶的分組,提高了權(quán)限的分配效率。且加入角色層后,訪問控制機制更接近真實世界中的職業(yè)分配,便于權(quán)限管理。

RBAC模型是典型的基于角色的訪問控制模型,包括RBAC0、RBAC1、RBAC2和RBAC3四個不同層次的模型。其中RBAC0是基礎(chǔ)模型,定義了支持RBAC的最小需求,如用戶、角色、權(quán)限、會話等概念,RBAC0模型圖解如圖2-1所示。RBAC1加入了角色繼承關(guān)系,可以根據(jù)組織內(nèi)部權(quán)力和責任的結(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)和責任來劃分,每種角色可以完成一定的職能。用戶通過飾演不同的角色獲得角色所擁有的權(quán)限,一旦某個用戶成為某角色的成員,則此用戶可以完成該角色所具有的職能。通過將權(quán)限指定給角色而不是用戶,在權(quán)限分派上提供了極大的靈活性和極細的權(quán)限指定粒度。

圖2-1 RBAC0模型圖解

3、SaaS平臺用戶設(shè)計

一般SaaS平臺基本角色由平臺管理員、租戶用戶、租戶管理員、租戶其他角色組成。如圖2-2以O(shè)2O業(yè)務(wù)的企業(yè)架構(gòu)為例,圖解系統(tǒng)角色關(guān)系。

圖2-2 SaaS平臺用戶設(shè)計圖解

平臺管理員:負責平臺的日常維護和管理,包括用戶日志的管理、租戶賬號審核、租戶狀態(tài)管理、租戶費用的管理,租戶權(quán)限的管理,要注意的是平臺管理員不能對租戶的具體業(yè)務(wù)進行管理。如果租戶數(shù)量大,還可以對平臺管理員劃分角色,可以按地域劃分,比如西北地區(qū)、東北地區(qū)等,讓平臺管理員分別管理不同的租戶;也可以根據(jù)業(yè)務(wù)進行劃分,比如租戶管理員,租費管理員等。

租戶:指訪問SaaS平臺的用戶企業(yè),在SaaS平臺中各租戶之間信息是獨立的。租戶信息包括租戶的名稱、地址等租戶企業(yè)的相關(guān)信息,主要用來區(qū)別各租戶,并且由平臺管理員對租戶賬號狀態(tài)進行管理。各租戶可根據(jù)需要自行選擇SaaS平臺功能模塊并依此付費。

租戶管理員:為租戶角色分配權(quán)限和相關(guān)系統(tǒng)管理、維護。

租戶用戶:根據(jù)租戶管理員分配的權(quán)限以及自己的角色進行相關(guān)的業(yè)務(wù)管理。各租戶用戶只能訪問該租戶選擇的 SaaS 平臺的功能模塊。一個系統(tǒng)用戶如果有多個角色,則他只能看到當前角色下的數(shù)據(jù),通過角色切換,可以達到查看所屬其他角色下的數(shù)據(jù)信息。

租戶角色:根據(jù)業(yè)務(wù)功能分由租戶管理員進行角色劃分,劃分好角色后,租戶管理員可以對相應(yīng)的角色進行權(quán)限分配。角色有上下級關(guān)系,上級可以查看下級的數(shù)據(jù),下級不能訪問上級的數(shù)據(jù),平級之間不能相互訪問。角色上層可再加入分組層(如分部門或團隊等),不同組別的數(shù)據(jù)范圍不同,資源、操作可以共享也可以隔離。

4、小結(jié)

本文就SaaS系統(tǒng)權(quán)限設(shè)計作簡單講解,后續(xù)文章將會講解SaaS系統(tǒng)產(chǎn)品設(shè)計的其他環(huán)節(jié),謝謝閱讀。

相關(guān)閱讀

以SaaS級O2O管理系統(tǒng)為例,淺析SaaS級系統(tǒng)設(shè)計

 

本文由 @?ohdkooou 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 沒講明白透徹

    來自廣東 回復(fù)
  2. 你這套,租戶能創(chuàng)建自己的組織架構(gòu)和用戶體系嗎,不跟其他租戶共享的?

    來自福建 回復(fù)
  3. 你好,有一點我沒太明白,權(quán)限在角色是,是不是意味著每個租戶是一個角色;不然怎么保證每個租戶看到的菜單不一致

    來自河南 回復(fù)
    1. 每一個租戶是一個用戶或者一個賬號?

      來自浙江 回復(fù)
  4. 講的很好!非常感謝!

    來自浙江 回復(fù)
  5. 對于角色上下級關(guān)系、角色互斥能不能再詳細說下,或者舉個實際案例,感謝

    來自福建 回復(fù)
  6. 請教個問題,每個租戶都有自己的一套用戶角色權(quán)限系統(tǒng)嗎? 還是整個SaaS共用一套角色權(quán)限系統(tǒng)

    來自廣東 回復(fù)
    1. 每個租戶都會有一套自己的角色權(quán)限系統(tǒng)(也是基于權(quán)限控制的)

      來自上海 回復(fù)
    2. 這個是不是還是可以理解為整個系統(tǒng)共用一套角色權(quán)限設(shè)置,只是設(shè)計時按照多租戶模式設(shè)計的?

      來自陜西 回復(fù)
  7. 再詳細一些,講一講細粒度權(quán)限劃分吧。

    來自北京 回復(fù)
  8. 受益匪淺,贊贊贊

    來自陜西 回復(fù)
  9. 請問SaaS系統(tǒng)的單用戶和多用戶有哪些區(qū)別?產(chǎn)品設(shè)計方面有什么不同?方便的話可不可以加一下微信。

    來自上海 回復(fù)
    1. 你好,我們最近也涉及這塊,單租戶和多租戶設(shè)計模式等問題,方便加V交流嗎?

      來自陜西 回復(fù)
  10. 請教下,平臺管理員對應(yīng)的登錄賬戶,是如何獲得管理員權(quán)限的呢?如果平臺管理員帳號對應(yīng)的帳號因故失效,如何將當前的平臺管理員所對應(yīng)的賬號替換掉?

    來自北京 回復(fù)
  11. 請教一下作者,文中的圖是用什么軟件做的呢

    來自廣東 回復(fù)
    1. AXURE就可以做, 還有一般的做圖工具應(yīng)該都可以做出來吧

      來自浙江 回復(fù)
  12. 之前也設(shè)計過兩個個SAAS平臺用戶管理系統(tǒng),覺得文章大體的總結(jié)是沒問題的,但是沒有真正涉及到SAAS這個模塊,例如大平臺下多系統(tǒng)的權(quán)限管理這個概念,可以有不同的設(shè)計,如:同一個角色可以跨系統(tǒng)操作,以租戶的實際需要進行設(shè)置;或者,按照系統(tǒng)進行單獨角色權(quán)限設(shè)置,沒有跨系統(tǒng)角色權(quán)限的設(shè)置,;這些都可以容納到整個SAAS平臺用戶管理系統(tǒng)中

    來自廣東 回復(fù)
    1. 你好,最近在做權(quán)限管理系統(tǒng),方便加個好友交流下嗎?

      來自廣東 回復(fù)
    2. 抱歉沒有經(jīng)常上這個賬號,不知道您的問題是否有被解決,如果有需要可以加我微信:ljx3558418,大家可以互相交流~

      來自廣東 回復(fù)
    3. 可以分享下這方面詳細的內(nèi)容嗎?蟹蟹

      來自廣東 回復(fù)
  13. 麻煩請教作者,根據(jù)文中的描述,組織架構(gòu)的建立是依靠角色直接的層級和分組關(guān)系,這里面其實是沒有單獨的職位的概念的,是么

    來自山東 回復(fù)
    1. 角色和組織架構(gòu)是分開的。比如市場經(jīng)理和產(chǎn)品經(jīng)理,是組織架構(gòu),我可以把他們都分在經(jīng)理角色下,讓他們都有權(quán)看到每個月的銷售業(yè)績。

      來自四川 回復(fù)
    2. 是的,您說的這個是現(xiàn)在做得比較多的做法,組織架構(gòu)決定用戶層級,角色決定權(quán)限,而角色的賦予和用戶本身的組織結(jié)構(gòu)節(jié)點是沒有關(guān)系的。
      我看作者文里的意思好像是說可以通過角色的上下級關(guān)系直接形成組織架構(gòu)節(jié)點,用戶通過分配角色而自動產(chǎn)生組織架構(gòu)。不知道我理解的對不對。如果是這樣的話,用戶-角色-權(quán)限更符合人-職位-職能的線下邏輯,不過在組織架構(gòu)的調(diào)整上會帶來很多冗余。

      來自山東 回復(fù)
    3. 嗯,不過按角色自動產(chǎn)生組織架構(gòu),感覺不太靈活??赡懿煌M織架構(gòu)下的人員都具有相同的權(quán)限,如果這樣就還是要設(shè)置多個角色了。

      來自四川 回復(fù)
    4. 是的哈

      來自山東 回復(fù)
  14. 手動贊 ??

    來自山東 回復(fù)
  15. 寫的太粗了

    來自廣東 回復(fù)
    1. 這都粗?發(fā)個細的來,我覺得作者總結(jié)的很好,還有哪些方面沒涉及到,歡迎補充,我再去仔細學(xué)習(xí)。

      來自四川 回復(fù)
    2. 確實粗,哪些方面沒涉及 ?你就搜后臺權(quán)限設(shè)計,很多的~

      來自浙江 回復(fù)
    3. 確實粗啊,只是建立了一個基本結(jié)構(gòu)

      來自北京 回復(fù)