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

22 評(píng)論 27908 瀏覽 423 收藏 12 分鐘

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

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

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

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

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

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

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

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

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

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

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

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

1)場(chǎng)景1:賬號(hào)可看到本層級(jí)及下級(jí)數(shù)據(jù)。

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

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

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

2)場(chǎng)景2:賬號(hào)只能看到本層級(jí)的數(shù)據(jù)。

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

3)場(chǎng)景3:賬號(hào)只能看到下級(jí)某一節(jié)點(diǎn)的數(shù)據(jù)。

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

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

4)場(chǎng)景4,賬號(hào)只能看到指定層級(jí)的指定數(shù)據(jù)。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3. 角色互斥場(chǎng)景(RBAC2)

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

財(cái)務(wù)中的會(huì)計(jì)和出納兩個(gè)角色,一個(gè)人是不能同時(shí)負(fù)責(zé),做到財(cái)權(quán)分離。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

因?yàn)榻巧淖饔帽旧砭褪菎徫宦氊?zé),可以在審批流程中引入角色,審批節(jié)點(diǎn)都是角色。

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

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

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

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

五、角色組和用戶組使用場(chǎng)景。

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

六、總結(jié)

目前基于SaaS平臺(tái)的現(xiàn)有業(yè)務(wù)和未來管理類的業(yè)務(wù)特點(diǎn),一般會(huì)采用標(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)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 可不可以這樣,角色用來管理數(shù)據(jù)、功能權(quán)限;而崗位用來管理審批流,這樣角色和崗位分開是不是更清晰

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

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

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

    來自廣東 回復(fù)
  3. 不錯(cuò)的文章,點(diǎn)個(gè)贊,加你微信,還請(qǐng)通過一下

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      來自北京 回復(fù)