后臺(tái)產(chǎn)品的基石:權(quán)限管理體系設(shè)計(jì)
文章作者主要講解了一些關(guān)于后臺(tái)產(chǎn)品權(quán)限設(shè)計(jì)體系,來(lái)文中看看~
什么是后臺(tái)產(chǎn)品?
簡(jiǎn)而言之,我們?nèi)粘J褂玫幕ヂ?lián)網(wǎng)應(yīng)用,有一些需要做數(shù)據(jù)/信息的呈現(xiàn),管理維護(hù)這些數(shù)據(jù)/信息的產(chǎn)品,就是后臺(tái)產(chǎn)品。
舉個(gè)例子:在音樂(lè)app中有很多的歌曲、專(zhuān)輯、歌手等的內(nèi)容,這些內(nèi)容都需要在曲庫(kù)后臺(tái)中進(jìn)行上傳、信息關(guān)聯(lián)等操作,這里的曲庫(kù)后臺(tái)就是一個(gè)后臺(tái)產(chǎn)品。
后臺(tái)產(chǎn)品為什么要做權(quán)限管理?
后臺(tái)產(chǎn)品中有大量的數(shù)據(jù),需要較多的人員來(lái)對(duì)這些數(shù)據(jù)進(jìn)行管理,不同人分別負(fù)責(zé)管理自己的數(shù)據(jù)。且不同的人,在整個(gè)數(shù)據(jù)管理流程中,需要進(jìn)行的操作不同。那么此時(shí),我們就需要對(duì)這些人員的權(quán)限進(jìn)行不同的定義,具體人員可以看什么,不可以看什么,從而確保數(shù)據(jù)的穩(wěn)定性,降低數(shù)據(jù)泄露的風(fēng)險(xiǎn)。
同樣用曲庫(kù)后臺(tái)舉例子,有的人負(fù)責(zé)維護(hù)華語(yǔ)音樂(lè),有的人負(fù)責(zé)英語(yǔ)音樂(lè),那么負(fù)責(zé)話語(yǔ)音樂(lè)的人,不可以操作英語(yǔ)音樂(lè)的數(shù)據(jù)。在負(fù)責(zé)華語(yǔ)音樂(lè)的人中,有的人負(fù)責(zé)上傳歌曲源,有的人負(fù)責(zé)整理音樂(lè),打包成歌單呈現(xiàn)給用戶(hù),那么負(fù)責(zé)上傳歌曲源的人,不可以去進(jìn)行歌單的編輯。
權(quán)限管理的基礎(chǔ):組織結(jié)構(gòu)
人員層級(jí)的劃分是做權(quán)限管理的基礎(chǔ),幾乎稍有規(guī)模的公司,都會(huì)有人員管理層級(jí)的劃分,我們稱(chēng)之為組織結(jié)構(gòu),在組織結(jié)構(gòu)中,明確指定人員的匯報(bào)關(guān)系、負(fù)責(zé)的業(yè)務(wù)模塊、人員的崗位等等。
組織結(jié)構(gòu)的一個(gè)簡(jiǎn)單示意圖如下,節(jié)點(diǎn)用于對(duì)業(yè)務(wù)模塊、工作范疇進(jìn)行劃分。在一個(gè)業(yè)務(wù)模塊內(nèi),不同職能的人員,用崗位來(lái)進(jìn)行區(qū)分,例如研發(fā)進(jìn)行功能的開(kāi)發(fā),QA進(jìn)行功能的驗(yàn)證測(cè)試。
權(quán)限管理體系如何搭建
權(quán)限管理體系可以劃分為三個(gè)層級(jí):功能權(quán)限、數(shù)據(jù)權(quán)限、按鈕/字段權(quán)限。
- 功能權(quán)限:定義人員是否可以訪問(wèn)某個(gè)頁(yè)面。例如曲庫(kù)后臺(tái),曲庫(kù)資源的管理人員,可以訪問(wèn)曲庫(kù)資源的管理頁(yè)面,不可以訪問(wèn)歌單資源的管理頁(yè)面。
- 數(shù)據(jù)權(quán)限:定義人員在頁(yè)面中,可查看的數(shù)據(jù)的范圍。例如曲庫(kù)后臺(tái),曲庫(kù)資源的管理人員中,華語(yǔ)音樂(lè)管理員可查看華語(yǔ)音樂(lè),不可查看英語(yǔ)音樂(lè)。
- 按鈕/字段權(quán)限:定義人員針對(duì)查看到的數(shù)據(jù),可以進(jìn)行的操作,或可查看的字段。例如曲庫(kù)后臺(tái)有歌曲的上傳和刪除的操作,曲庫(kù)資源的管理人員中,上傳資源的人員只能看到上傳按鈕,不可查看歌曲的刪除按鈕。只可查看歌曲的基礎(chǔ)信息,不可查看歌曲的定價(jià)信息。
從上圖和上面的描述舉例中,可以看出來(lái),這三層權(quán)限控制是逐漸遞進(jìn)的關(guān)系,從最基本頁(yè)面訪問(wèn),到具體數(shù)據(jù)信息操作,對(duì)于權(quán)限的粒度管理越來(lái)越細(xì)致。
那么基于這個(gè)理論基礎(chǔ),在設(shè)計(jì)上如何實(shí)現(xiàn)呢?
- 功能權(quán)限:頁(yè)面是具體功能的一個(gè)實(shí)現(xiàn),而功能的使用與人員的職能相關(guān),結(jié)合我們前面講的組織結(jié)構(gòu)可以得出,功能權(quán)限與崗位密切相關(guān)。因此我們做權(quán)限配置時(shí),可以考慮將崗位與頁(yè)面權(quán)限綁定,這樣在崗位人員更替的過(guò)程中,只要崗位職能不變,那么我們對(duì)崗位和頁(yè)面權(quán)限的綁定就是無(wú)需變更的。例如編輯人員擁有曲庫(kù)編輯頁(yè)的權(quán)限,運(yùn)營(yíng)人員擁有歌單編輯頁(yè)的權(quán)限。
- 數(shù)據(jù)權(quán)限:同崗位的人員負(fù)責(zé)不同范圍的數(shù)據(jù),那我們可以通過(guò)定義人員可查看自己負(fù)責(zé)標(biāo)簽范疇內(nèi)的數(shù)據(jù)來(lái)實(shí)現(xiàn)數(shù)據(jù)權(quán)限的管控。如果數(shù)據(jù)量特別大,同崗位的人員也需拆分給不同的管理人員來(lái)管理,甚至管理人員還是多層級(jí)的,那么此時(shí)就需要借助組織節(jié)點(diǎn)一起定義數(shù)據(jù)權(quán)限,最末級(jí)節(jié)點(diǎn)人員查看自己標(biāo)簽范疇內(nèi)的數(shù)據(jù),上級(jí)節(jié)點(diǎn)的人員查看自己下級(jí)節(jié)點(diǎn)人員的數(shù)據(jù)匯總。
- 按鈕/字段權(quán)限:按鈕/字段權(quán)限本質(zhì)上還是對(duì)一個(gè)功能的控制,只是這個(gè)功能內(nèi)嵌于頁(yè)面內(nèi),比頁(yè)面的顆粒度更細(xì),所以按鈕/字段權(quán)限可以和功能權(quán)限一樣,與崗位綁定。
權(quán)限管理體系的豐富拓展
上述的三層權(quán)限體系可以滿足我們基礎(chǔ)的權(quán)限控制的需求了,但是在一些特殊的情況下,有一些上述體系不能滿足需求的情況,該怎么去拓展這個(gè)權(quán)限控制體系呢?
以下列舉了一些:
場(chǎng)景一:同崗位的員工,進(jìn)一步進(jìn)行了工作模塊的劃分,希望他們可以擁有不同的功能權(quán)限
對(duì)于崗位通用的權(quán)限,我們可以用崗位與權(quán)限綁定來(lái)配置。若同崗位員工的工作模塊不同,有一些權(quán)限不可直接賦予崗位,而是與具體人員關(guān)聯(lián)時(shí),可以抽象出一層虛擬角色,這些角色集成一個(gè)工作模塊的特殊權(quán)限,然后將角色直接賦予具體的人員。
這樣可以用虛擬角色來(lái)進(jìn)行權(quán)限的規(guī)范管理,同時(shí)又能滿足同崗位人員需要配置特殊權(quán)限的情況。
場(chǎng)景二:某些員工臨時(shí)支援他人工作,需要臨時(shí)擁有一些功能和數(shù)據(jù)權(quán)限,但是組織結(jié)構(gòu)不可調(diào)整
組織結(jié)構(gòu)中的崗位和節(jié)點(diǎn)上下級(jí)關(guān)系,定義好了人員的全部權(quán)限。當(dāng)對(duì)象的組織崗位關(guān)系不可調(diào)整,但是需要添加對(duì)象的各項(xiàng)權(quán)限時(shí),我們可以通過(guò)加成權(quán)限來(lái)實(shí)現(xiàn)。加成權(quán)限就是指人員擁有自身所在組織崗位的權(quán)限,同時(shí)還可以擁有特殊配置的權(quán)限。
這個(gè)特殊配置的權(quán)限怎么配呢?
這個(gè)配置的基礎(chǔ)結(jié)構(gòu)時(shí),配置對(duì)象在某些系統(tǒng)中擁有某些節(jié)點(diǎn)崗位的全部權(quán)限。我們把配置對(duì)象、某些系統(tǒng)、某些節(jié)點(diǎn)崗位拆開(kāi)描述如下。
- 配置對(duì)象:這個(gè)要臨時(shí)添加權(quán)限的對(duì)象,可能是員工,可能是某組織節(jié)點(diǎn)全部人員,甚至某崗位全部人員,因此這個(gè)配置對(duì)象可以根據(jù)需求去拓展,支持多選。
- 某些系統(tǒng):一個(gè)大的后臺(tái)中可以進(jìn)一步拆分系統(tǒng),如果需要限制是這個(gè)加成權(quán)限只在部分系統(tǒng)生效,那我們可以增加生效系統(tǒng)的配置。
- 某些節(jié)點(diǎn)崗位:這個(gè)就是配置對(duì)象具體需要什么節(jié)點(diǎn)崗位的權(quán)限,在某些節(jié)點(diǎn)崗位這一環(huán)節(jié)中配置。
場(chǎng)景三:某些非頂級(jí)節(jié)點(diǎn)的員工,需要擁有全部數(shù)據(jù)的權(quán)限;某些有問(wèn)題的員工,不可擁有任何數(shù)據(jù)的權(quán)限
這個(gè)是最簡(jiǎn)單的,可以通過(guò)添加人員的白名單和黑名單來(lái)解決。白名單中的員工,默認(rèn)賦予全部數(shù)據(jù)的權(quán)限。黑名單中的員工,默認(rèn)不擁有任何數(shù)據(jù)的權(quán)限。
白名單和黑名單的賦予,支持給通過(guò)節(jié)點(diǎn)、崗位、人員來(lái)配置,操作更靈活方便。
以上是我對(duì)后臺(tái)產(chǎn)品權(quán)限設(shè)計(jì)體系的一些分享,希望對(duì)進(jìn)行后臺(tái)產(chǎn)品設(shè)計(jì)的初級(jí)同學(xué)有一些幫助,歡迎留言一起交流。
作者:張三,5年互聯(lián)網(wǎng)產(chǎn)品經(jīng)理經(jīng)驗(yàn),同時(shí)主導(dǎo)過(guò)C端和后臺(tái)多項(xiàng)產(chǎn)品設(shè)計(jì)。
本文@張三 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來(lái)自Unsplash,基于CC0協(xié)議
感覺(jué)換個(gè)說(shuō)法「模塊權(quán)限-數(shù)據(jù)權(quán)限-功能權(quán)限」這樣子可能會(huì)比較清晰一點(diǎn)
剛了解這塊 學(xué)習(xí)一下
我想請(qǐng)教一下,數(shù)據(jù)權(quán)限有辦法可配置化嘛,還是寫(xiě)死在崗位上面的?
數(shù)據(jù)權(quán)限里包含字段權(quán)限,所以正確的從下而上的順序:數(shù)據(jù)權(quán)限、功能權(quán)限,這兩個(gè)里頭再細(xì)分
話說(shuō)這個(gè)功能、數(shù)據(jù)、按鈕/字段權(quán)限的劃分是否會(huì)有重復(fù)?我現(xiàn)在做的都是按菜單、頁(yè)面(包含字段、按鈕)、數(shù)據(jù)權(quán)限來(lái),實(shí)際應(yīng)用上感覺(jué)更清晰。
這個(gè)劃分本質(zhì)上是對(duì)權(quán)限從粗到細(xì)的的一個(gè)劃分框架,每個(gè)權(quán)限都對(duì)應(yīng)一個(gè)數(shù)據(jù)對(duì)象,所以沒(méi)有重復(fù)
“數(shù)據(jù)權(quán)限:同崗位的人員負(fù)責(zé)不同范圍的數(shù)據(jù),那我們可以通過(guò)定義人員可查看自己負(fù)責(zé)標(biāo)簽范疇內(nèi)的數(shù)據(jù)來(lái)實(shí)現(xiàn)數(shù)據(jù)權(quán)限的管控。”
請(qǐng)問(wèn)這個(gè)節(jié)點(diǎn)的標(biāo)簽范圍以什么作為區(qū)分?
節(jié)點(diǎn)標(biāo)簽范圍的區(qū)分要看具體的業(yè)務(wù)場(chǎng)景。例如在曲庫(kù)的后臺(tái)管理系統(tǒng)中,可以用音樂(lè)的語(yǔ)言來(lái)作為標(biāo)簽,將標(biāo)簽作為資源添加至組織節(jié)點(diǎn)崗位,甚至到人員,從而達(dá)成對(duì)人員細(xì)分?jǐn)?shù)據(jù)權(quán)限的管控
節(jié)點(diǎn)標(biāo)簽范圍的區(qū)分要看具體的業(yè)務(wù)場(chǎng)景。例如在曲庫(kù)的后臺(tái)管理系統(tǒng)中,可以用音樂(lè)的語(yǔ)言來(lái)作為標(biāo)簽,將標(biāo)簽作為資源添加至組織節(jié)點(diǎn)崗位,甚至到人員,從而達(dá)成對(duì)人員細(xì)分?jǐn)?shù)據(jù)權(quán)限的管控
我的理解是這個(gè)就是字段
文中我所提的字段,一般是一條數(shù)據(jù)的字段信息,例如一首歌的作曲者、專(zhuān)輯、歌手等等
音樂(lè)的語(yǔ)言和歌的作者/專(zhuān)輯/歌手我看來(lái)是同一個(gè)維度的字段,如果是這個(gè)產(chǎn)品沒(méi)必要再分出一個(gè)數(shù)據(jù)權(quán)限,通過(guò)字段控制就可以了??赡苁抢斫獾慕嵌炔煌惴值们寰蚾k
不對(duì),數(shù)據(jù)權(quán)限還是要分出包含在字段下面,這樣層級(jí)會(huì)比較清晰
目前我也在做cms配置系統(tǒng)管理,組織機(jī)構(gòu)存在多級(jí),涉及賬號(hào)與權(quán)限管理,方便加個(gè)微信溝通下嗎?我的微信1152481807
因?yàn)橛羞@樣的需求:經(jīng)常會(huì)加入臨時(shí)的賬號(hào),而且該賬號(hào)的權(quán)限也是待定的,就比較棘手。把權(quán)限掛載在每個(gè)角色下面,又會(huì)因?yàn)橛猩习賯€(gè)角色,操作太麻煩了。
這種情況下,建議先做需求的梳理。針對(duì)經(jīng)常性的臨時(shí)賬號(hào)和臨時(shí)權(quán)限賦予,梳理一個(gè)清晰的業(yè)務(wù)流程,將臨時(shí)賬號(hào)統(tǒng)一在一起管理,同時(shí)對(duì)臨時(shí)賬號(hào)的權(quán)限做規(guī)范化的管理,而不是來(lái)一個(gè)賬號(hào),加一次個(gè)性化權(quán)限。權(quán)限規(guī)范化管理可以考慮把系統(tǒng)角色再打包,建立申請(qǐng)、審批、自動(dòng)配置流程
如果總是有臨時(shí)賬號(hào)權(quán)限待定的話,那建議先梳理需求,看看歷史臨時(shí)賬號(hào)的使用場(chǎng)景和需求情況,將臨時(shí)賬號(hào)和賬號(hào)的權(quán)限規(guī)范化管理
關(guān)于后臺(tái)復(fù)雜權(quán)限設(shè)計(jì)有一套R(shí)BAC的體系,可以參考。
對(duì)是的,RABC權(quán)限體系適用于功能權(quán)限和按鈕/字段權(quán)限的管理,這塊在場(chǎng)景一中略有提及,未展開(kāi)??
如果用戶(hù)體系過(guò)于龐大而繁雜,那權(quán)限管理模塊應(yīng)該單獨(dú)做出來(lái)?還是掛載在用戶(hù)管理模塊下,即給每個(gè)用戶(hù)分配權(quán)限?
你的用戶(hù)管理應(yīng)該不是指OA里用戶(hù)信息的管理,如果是本文中所述的用戶(hù)管理,本身就是為了權(quán)限而設(shè)置,應(yīng)該包含在【權(quán)限管理】里面,一般權(quán)限管理下有用戶(hù)和角色管理兩項(xiàng)就夠用了,而且用戶(hù)龐大的情況下就需要分開(kāi)角色和用戶(hù),單純的只設(shè)置用戶(hù)并賦權(quán)限只適合用戶(hù)少且人員穩(wěn)定的系統(tǒng)
應(yīng)該單獨(dú)做出來(lái),因?yàn)榻o用戶(hù)單獨(dú)配權(quán)限需要耗費(fèi)人力資源。單獨(dú)做出來(lái),抽象崗位或虛擬角色可以把很多權(quán)限處理操作做成自動(dòng)的
是的,我的做法是把權(quán)限與角色綁定,然后在角色下新建用戶(hù)的時(shí)候就不用配權(quán)限了,但是我的項(xiàng)目有上百個(gè)角色(政府項(xiàng)目,所以有上百個(gè)部門(mén)),而且不同角色的權(quán)限要求也不同,請(qǐng)問(wèn)怎么做優(yōu)化呢?(有人建議我在角色的基礎(chǔ)上再抽象一層,叫“角色類(lèi)”,形成角色類(lèi)——角色——用戶(hù)的體系,然后依據(jù)每個(gè)層級(jí)的共性賦予默認(rèn)權(quán)限,有點(diǎn)像電商類(lèi)目的屬性繼承。這樣可以嗎?)
角色的設(shè)定也是一次性工作,政府的角色非常的固定,如果后續(xù)不會(huì)大幅度變動(dòng)的話,將所有角色統(tǒng)一初始化會(huì)是一個(gè)比較簡(jiǎn)單的方法,后續(xù)也只需增加用戶(hù)并將用戶(hù)和角色掛鉤就可以了。
即使再增加一層,角色類(lèi),也只是用于在初始化角色的時(shí)候比較方便而已
雖然知道場(chǎng)景二是針對(duì)某個(gè)人員賬號(hào)增加功能,但是沒(méi)有想到好的體現(xiàn)形式。不知道能否具像一下?
舉個(gè)例子:歌單編輯人員人手不夠,需要抽調(diào)幾位歌曲資源編輯人員,協(xié)助進(jìn)行歌單編輯。那么我們需要一個(gè)場(chǎng)景二中描述的系統(tǒng),這個(gè)系統(tǒng)給歌曲資源編輯人員(配置對(duì)象)配置,在曲庫(kù)后臺(tái)的歌單管理模塊(系統(tǒng)),擁有某歌單編輯崗位的權(quán)限(某節(jié)點(diǎn)崗位)。從而達(dá)到使歌曲資源編輯人員在指定系統(tǒng)擁有歌單編輯的權(quán)限。
權(quán)限模塊化,然后人工增加臨時(shí)權(quán)限?