SaaS平臺權(quán)限架構(gòu)

22 評論 27775 瀏覽 422 收藏 12 分鐘

編輯導(dǎo)語:對于業(yè)務(wù)較多的公司來說,組織結(jié)構(gòu)相對復(fù)雜,這時候平臺的權(quán)限架構(gòu)就顯得尤為重要,本篇文章作者分享了有關(guān)SaaS平臺的權(quán)限架構(gòu)的內(nèi)容,詳細介紹了不同運營場景下的數(shù)據(jù)權(quán)限問題,感興趣的一起來學(xué)習(xí)一下,希望對你有幫助。

對于SaaS系統(tǒng)的權(quán)限,就是登錄賬號的功能權(quán)限和數(shù)據(jù)權(quán)限的合集。

功能權(quán)限是賬號在平臺上能看到哪些頁面,能操作頁面里面的哪些功能或按鈕。

數(shù)據(jù)權(quán)限就是這個賬號能在系統(tǒng)中看到哪些數(shù)據(jù),能對哪些數(shù)據(jù)做功能級的操作。

功能權(quán)限一般靠角色和功能集進行關(guān)聯(lián),即RBAC模型。數(shù)據(jù)權(quán)限一般靠靠租戶的組織架構(gòu)來實現(xiàn)數(shù)據(jù)的隔離。

然后賬號和角色關(guān)聯(lián),獲得功能權(quán)限,和組織架構(gòu)關(guān)聯(lián),獲得可管理的數(shù)據(jù)。下面對相應(yīng)內(nèi)容做詳細介紹。

一、組織架構(gòu)解決數(shù)據(jù)權(quán)限

在實際運營場景中,稍微大點的公司,組織架構(gòu)相對比較復(fù)雜,層級比較多,每個層級節(jié)點要看到的數(shù)據(jù)要求是不一樣的,所以要對不同層級節(jié)點的數(shù)據(jù)做隔離。

例如,某餐飲公司組織架構(gòu)如下,則總部的CEO要看到下屬分公司的所有數(shù)據(jù),分公司的總經(jīng)理要看到所有下屬區(qū)域的數(shù)據(jù),朝陽區(qū)區(qū)域經(jīng)理要看到下屬所有門店的數(shù)據(jù),門店店長要看到店里的所有數(shù)據(jù)。

所以要在平臺賬號權(quán)限中引入組織架構(gòu),賬號直接跟組織架構(gòu)關(guān)聯(lián),在哪個層級看到哪個層級的數(shù)據(jù),通過組織架構(gòu)對多層級數(shù)據(jù)進行隔離。

總體來說,賬號關(guān)聯(lián)組織架構(gòu)時,需要確定下來方位的數(shù)據(jù)精確到哪一節(jié)點,是本節(jié)點及下級節(jié)點數(shù)據(jù),或只有本節(jié)點數(shù)據(jù),或指定的某個下級節(jié)點數(shù)據(jù),或是只能管理屬于自己創(chuàng)建的數(shù)據(jù)。

特殊的也會存在跨層級查看數(shù)據(jù)的情況。有以下五種場景:

1)場景1:賬號可看到本層級及下級數(shù)據(jù)。

在創(chuàng)建賬號時,要選擇這個賬號屬于哪個層級,則就能看到當(dāng)前層級及以下層級的所有數(shù)據(jù)。

如賬號1可看到北京分公司及其下屬節(jié)點的所有數(shù)據(jù)。

這種是比較常用的數(shù)據(jù)權(quán)限,同時賬號不能看到上級組織結(jié)構(gòu)節(jié)點的數(shù)據(jù),如賬號2屬于朝陽區(qū)這個節(jié)點,則不能看到屬于北京分公司的數(shù)據(jù)。

2)場景2:賬號只能看到本層級的數(shù)據(jù)。

數(shù)據(jù)權(quán)限更深層的需要細化出來這個賬號能看到具體哪個級別的數(shù)據(jù),如賬號3是屬于朝陽區(qū),但他有可能只能看到屬于朝陽區(qū)這一層的數(shù)據(jù),下級節(jié)點的門店數(shù)據(jù)是看不到的。

3)場景3:賬號只能看到下級某一節(jié)點的數(shù)據(jù)。

如售后人員的賬號2,雖然是屬于北京分公司,但只能負責(zé)朝陽區(qū)下面門店1和門店2的數(shù)據(jù)。

基于這種情況,需要在創(chuàng)建賬號時,在關(guān)聯(lián)組織架構(gòu),還要指定當(dāng)前賬號能看到這個節(jié)點下的哪些數(shù)據(jù)。

4)場景4,賬號只能看到指定層級的指定數(shù)據(jù)。

每個組織架構(gòu)的層級上會有一些屬于當(dāng)前級別某些賬號特有的數(shù)據(jù)。

如商務(wù)合作的客戶數(shù)據(jù),屬于當(dāng)前組織架構(gòu)的節(jié)點,同樣屬于某個商務(wù)人員獨有,不會共享給其他招商人員。

如招商部的A員工的賬號3,管理的客戶信息是屬于朝陽區(qū)的,同樣也只屬于賬號3所屬的A員工管理。

其他同級別的賬號4所屬的員工,則沒有權(quán)限看到這些客戶信息。但招商部的部門經(jīng)理是要看到本部門的所有數(shù)據(jù)。

所以在創(chuàng)建賬號時,還要指定這個賬號是能看到本部門的數(shù)據(jù)還只能看到自己創(chuàng)建的數(shù)據(jù)。

5)場景5:存在管理不同級別其他節(jié)點數(shù)據(jù)。

例如賬號5原本屬于組織架構(gòu)里的門店1,理論上只能管理門店1的數(shù)據(jù),但如果門店4這種不在同一個上級節(jié)點的門店,希望幫忙分析售后問題,那賬號5如何跨節(jié)點管理門店4的售后問題。

答案是門店4的管理者可以指定某些數(shù)據(jù)或節(jié)點的所有數(shù)據(jù)共享給門店1的賬號5管理。

數(shù)據(jù)共享不限制組織結(jié)構(gòu)的上下級和同級關(guān)系。

二、角色解決功能權(quán)限(RBAC模型)

1. 基礎(chǔ)角色權(quán)限模型(RBAC0)

為什么要靠角色來解決功能權(quán)限,而不是使用賬號跟功能直接關(guān)聯(lián)?是因為平臺頁面多,頁面內(nèi)的功能也非常多的情況下,如果靠賬號直接跟頁面和功能關(guān)聯(lián),所有賬號都操作起來比較繁瑣。

引入角色,把角色和權(quán)限關(guān)聯(lián),這樣有相同權(quán)限的人直接跟角色關(guān)聯(lián),進而獲得角色所對應(yīng)的功能權(quán)限。提高的操作的便利性。角色本身就是功能的合集。

同一個賬號,可以有多個角色,則可獲得多個角色的并集的權(quán)限。如賬號4關(guān)聯(lián)員工和助理兩個角色,則賬號4可獲得員工角色對應(yīng)的頁面3、頁面4和助理角色對應(yīng)的頁面5的功能權(quán)限。

2. 角色搭建組織架構(gòu)(RBAC1)

對于組織架構(gòu)沒有那么復(fù)雜的,則會有使用角色來實現(xiàn)組織架構(gòu)的,角色設(shè)計成帶有上下級的樹形結(jié)構(gòu)。

這種實現(xiàn)方式靈活性會比較差,如果組織架構(gòu)復(fù)雜,則角色量比較多,同樣一個店長角色,需要在每個組織架構(gòu)的節(jié)點上都進行單獨創(chuàng)建。一般不會采用這種實現(xiàn)方式。

3. 角色互斥場景(RBAC2)

實際業(yè)務(wù)場景中,存在同一個賬號不能同時獲得兩個角色,兩個角色互斥,有這個角色就不能獲得另外一個角色。

財務(wù)中的會計和出納兩個角色,一個人是不能同時負責(zé),做到財權(quán)分離。

這種需要在創(chuàng)建角色定義中專門去定義互斥情況。

4. 角色同時有組織架構(gòu)和角色互斥(RBAC3)

復(fù)合型的RBAC1+RBAC2的一種合成形式,角色上既有組織架構(gòu),又有角色互斥的實現(xiàn)形式。

三、賬號關(guān)聯(lián)角色或組織內(nèi)的崗位

1)賬號只綁定角色來同時獲得功能權(quán)限和數(shù)據(jù)權(quán)限。

如上圖所示,把角色當(dāng)成崗位,可將角色直接與組織架構(gòu)關(guān)聯(lián),賬號只需與角色關(guān)聯(lián),不用單獨關(guān)聯(lián)組織架構(gòu),則賬號直接獲取當(dāng)前角色下的功能權(quán)限和角色對應(yīng)的組織架構(gòu)下的數(shù)據(jù)權(quán)限。

這樣如果賬號需要調(diào)整崗位時,直接調(diào)整賬號對應(yīng)的角色就可以,方便操作。

但這種需要在每個節(jié)點上創(chuàng)建好崗位和對應(yīng)節(jié)點的角色,角色的數(shù)據(jù)量會比較多,每個角色都要配置對應(yīng)的功能權(quán)限。

2)賬號只綁定組織架構(gòu)內(nèi)的崗位來同時獲得功能權(quán)限和數(shù)據(jù)權(quán)限。

在組織架構(gòu)上創(chuàng)建崗位,崗位和對應(yīng)的角色關(guān)聯(lián),賬號直接跟組織架構(gòu)上的角色進行關(guān)聯(lián),同時獲得角色權(quán)限,無需再關(guān)聯(lián)角色。

賬號在調(diào)崗時直接更換組織架構(gòu)中的崗位就可以。

這種和上面的場景一樣,都需要頻繁重復(fù)創(chuàng)建一樣的內(nèi)容。

四、審批流程業(yè)務(wù)場景。

上面介紹的賬號與角色和組織架構(gòu)關(guān)聯(lián)來解決功能權(quán)限和數(shù)據(jù)權(quán)限的問題,但涉及到審批流程的,如在門店1內(nèi)部,服務(wù)員請假,需要店長審批,但兩個人都屬于同一組織架構(gòu)的門店1上,沒有上下級關(guān)系,只能在流程上指定人去審批。

但這樣每個部門內(nèi)部都需要自己創(chuàng)建審批流程,操作起來比較繁瑣。

因為角色的作用本身就是崗位職責(zé),可以在審批流程中引入角色,審批節(jié)點都是角色。

  • 例如請假,可在審批流程中設(shè)定門店的員工角色請假都要讓門店的店長或管理者角色審批,這樣所有的門店都遵照這個流程。
  • 例如報銷流程需要走門店店長和區(qū)級財務(wù)經(jīng)理這兩個審批。如果報銷一定金額,需要走分公司的財務(wù)副總這個人審批,則需要在流程中支持指定人來審批的功能。但一般不建議指定人審批,后續(xù)人員調(diào)整,審批流程也要做相應(yīng)調(diào)整。

另外如果當(dāng)前審批角色上有多個賬號,則多個賬號都可以審批,除非流程上指定某個賬號審批。

如財務(wù)報銷走到了朝陽區(qū)的財務(wù)角色,下面有賬號3和賬號4,則賬號3和4都可以審批,本著誰審批,誰負責(zé)的原則。

如果賬號3審批了某個報銷單,后續(xù)打款也應(yīng)當(dāng)走到賬號3上來進行審批。

五、角色組和用戶組使用場景。

  1. 角色組是多個角色的合集,多個角色下的功能權(quán)限的合集,為了在1個賬號綁定多個角色時方便操作,倒不如直接建個新的角色綁定賬號。
  2. 用戶組,就是多個賬號的合集,為了在多個賬號綁定同一個角色時方便操作,并沒有解決解決具體權(quán)限問題。

六、總結(jié)

目前基于SaaS平臺的現(xiàn)有業(yè)務(wù)和未來管理類的業(yè)務(wù)特點,一般會采用標(biāo)題1、標(biāo)題2和標(biāo)題4三種結(jié)合的形式,來分別解決功能權(quán)限,數(shù)據(jù)權(quán)限,和審批流程的權(quán)限。

 

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

題圖來自Unsplash,基于 CC0 協(xié)議。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 可不可以這樣,角色用來管理數(shù)據(jù)、功能權(quán)限;而崗位用來管理審批流,這樣角色和崗位分開是不是更清晰

    來自廣東 回復(fù)
    1. 角色管理數(shù)據(jù)權(quán)限靈活性太差,建議角色管理功能權(quán)限,節(jié)點和用戶管理數(shù)據(jù)權(quán)限,崗位可以管理審批流。

      來自北京 回復(fù)
    2. 請問這個節(jié)點和用戶管理數(shù)據(jù)權(quán)限,具體是怎么樣呢,數(shù)據(jù)權(quán)限是不是就是默認我管理的組織范圍下的數(shù)據(jù)

      來自廣東 回復(fù)
  2. 實用干貨,學(xué)到了

    來自廣東 回復(fù)
  3. 不錯的文章,點個贊,加你微信,還請通過一下

    來自河北 回復(fù)
  4. 大佬請教下,我們有這樣的業(yè)務(wù)場景
    用戶A在部門1 是角色a,可以看到1部門1所有數(shù)據(jù),在部門2 是角色b,可以看到部門2自己的數(shù)據(jù),部門1和部門2是平級部門
    用戶B在部門1是角色c,但是他需要負責(zé)部門2345產(chǎn)生的數(shù)據(jù)的下一步處理
    請問這種情況怎么處理~~

    來自浙江 回復(fù)
    1. 關(guān)于A的問題,系統(tǒng)支持用戶屬于多個組織架構(gòu)就可以,數(shù)據(jù)權(quán)限跟著組織價格,用戶A掛在1和2兩個部門(組織架構(gòu))下面,1部門分配部門所有數(shù)據(jù)權(quán)限,2部門分僅限自己的數(shù)據(jù)權(quán)限。
      關(guān)于用戶B,可以通過數(shù)據(jù)權(quán)限中的場景5分享數(shù)據(jù)權(quán)限功能,把2345的數(shù)據(jù)權(quán)限分配給用戶B。

      來自北京 回復(fù)
  5. 大佬能加個微嗎,請教下問題

    來自四川 回復(fù)
  6. 請問總結(jié)中提到的標(biāo)題6是指哪一點?

    來自上海 回復(fù)
    1. 勘誤,應(yīng)當(dāng)是標(biāo)題4,抱歉。

      來自北京 回復(fù)
  7. 請教個問題:租戶的用戶是否需要設(shè)計狀態(tài)?租戶到期之后再續(xù)費,續(xù)費賬號數(shù)和之前不一致,這種場景怎么處理?

    回復(fù)
    1. 1、租戶下的用戶肯定是要有狀態(tài),租戶自己也可以調(diào)整用戶能不能登錄系統(tǒng)。
      2、關(guān)于續(xù)費的賬號數(shù)問題,可以設(shè)定租戶超級管理員賬號可用,指定角色(系統(tǒng)管理員角色)賬號可用,指定數(shù)量老賬號可用,或僅限超級管理員可用,超級管理員再啟用可用的賬號。各有優(yōu)缺點,根據(jù)自己業(yè)務(wù)需要定一個規(guī)則就行。

      來自北京 回復(fù)
  8. 有個問題想請教下,一個關(guān)于RBAC模型的問題 RBAC模型是根據(jù)“角色”去判斷權(quán)限的 但實際業(yè)務(wù)場景有不同用戶是同一“角色” 但是不同權(quán)限點的情況 如果用創(chuàng)建多個“角色”來解決的話 覺得不太靈活 想到了改變這個模型 把權(quán)限直接和“用戶”掛鉤 而不是“角色” 但這個模型就變了 會不會用戶更難理解

    來自北京 回復(fù)
    1. 確實會存在要建多個角色的情況,你說的這種是最簡單的用戶和權(quán)限掛鉤的實現(xiàn)方式,如果用戶不多的情況下可以這么做。但如果同權(quán)限的用戶多的話,就要重復(fù)配置權(quán)限,倒不如用角色來的簡單。

      來自北京 回復(fù)
    2. 是不是可以在加一個角色的數(shù)據(jù)權(quán)限就可以了

      來自安徽 回復(fù)
    3. 那基本上就是角色同時管理功能權(quán)限和數(shù)據(jù)權(quán)限了。

      來自北京 回復(fù)
  9. 請教一個問題,給到租戶的是一個總賬號,然后通過總賬號去管理一個租戶系統(tǒng),通過子賬號角色去隔離功能。那開發(fā)者公司的管理總后臺發(fā)放租戶總賬號,是租戶總賬號的更上一層的賬號嗎(或者說開發(fā)者公司的管理后臺和租戶的系統(tǒng)平臺其實也是賬號角色去隔離功能的?)還是租戶系統(tǒng)和開發(fā)者公司管理后臺是兩套獨立的,通過接口關(guān)聯(lián)的呢

    來自浙江 回復(fù)
    1. 你說的這是兩種實現(xiàn)方式,一種是租戶的上層賬號,這種維護的平臺少,相對簡單。另外一種是單獨做一套內(nèi)部使用的系統(tǒng),通過接口關(guān)聯(lián),可拓展性強。

      來自北京 回復(fù)
  10. 感謝分享,受益了

    來自浙江 回復(fù)
    1. 相互學(xué)習(xí)哈。

      來自北京 回復(fù)
  11. 學(xué)到了,看似負責(zé)難懂的東西,跟著流程走,用對方法,會提高很多效率

    來自湖北 回復(fù)
    1. 大家相互學(xué)習(xí)哈。

      來自北京 回復(fù)