后臺(tái)權(quán)限設(shè)計(jì)法:“三位一體”
如何產(chǎn)出一個(gè)相對(duì)合理的后臺(tái)權(quán)限設(shè)計(jì)?本文筆者提出了一個(gè)后臺(tái)權(quán)限設(shè)計(jì)法:三位一體法——也就是“用戶+角色+組織結(jié)構(gòu)=用戶權(quán)限”。
知乎上有個(gè)問題:“為什么很多產(chǎn)品經(jīng)理不愿意做后臺(tái)?”在各類回復(fù)中有一個(gè)聲音:“因?yàn)楹笈_(tái)產(chǎn)品不好抄……”
不可否認(rèn),前臺(tái)產(chǎn)品和功能大都肉眼可見,存在可以借鑒的思路,而后臺(tái)產(chǎn)品可參考的內(nèi)容不多,但也正因此,我們才需要更多的后臺(tái)產(chǎn)品設(shè)計(jì)資料。
最近幾年自己主要負(fù)責(zé)數(shù)據(jù)平臺(tái)產(chǎn)品與ERP等業(yè)務(wù)系統(tǒng)項(xiàng)目,這些都屬于后臺(tái)范疇,所以在后臺(tái)設(shè)計(jì)方面,有一些自己的方式方法,本文優(yōu)先將后臺(tái)權(quán)限設(shè)計(jì)相關(guān)的經(jīng)驗(yàn)分享給大家,與大家一起探討。
為什么要設(shè)計(jì)后臺(tái)權(quán)限
廣義的后臺(tái)包括業(yè)務(wù)系統(tǒng)(ERP、CRM、財(cái)務(wù)與客服系統(tǒng)等)、平臺(tái)型產(chǎn)品、To B商戶端以及各類App的管理后臺(tái)等。
其中不少初創(chuàng)App的管理后臺(tái),一個(gè)超管賬號(hào)打天下,等規(guī)模提高到需要拆分后臺(tái)用戶權(quán)限的時(shí)候,再對(duì)后臺(tái)的改造,這幾乎算是刮骨療毒了,需要付出的代價(jià)很大??梢哉f越早進(jìn)行后臺(tái)權(quán)限設(shè)計(jì),后續(xù)成本也就越低。
首先我們來看,什么是后臺(tái)權(quán)限,后臺(tái)權(quán)限主要由以下三部分組成:
- 頁(yè)面權(quán)限:用戶可以看到那些頁(yè)面;
- 操作權(quán)限:用戶可以在頁(yè)面內(nèi)進(jìn)行那些操作,增刪改查等;
- 數(shù)據(jù)權(quán)限:用戶可以頁(yè)面內(nèi)看到那些數(shù)據(jù)或內(nèi)容,以教培ERP系統(tǒng)學(xué)員管理模塊為例,學(xué)員1為A校區(qū)學(xué)員,學(xué)員2為B學(xué)員,A校區(qū)相關(guān)工作人員登錄系統(tǒng)查看學(xué)員信息,僅可查看到學(xué)員1。
以上三種權(quán)限組合在一起,決定了當(dāng)前用戶的后臺(tái)權(quán)限與其可以完成那些業(yè)務(wù)流程。
至于為什么需要設(shè)計(jì)后臺(tái)權(quán)限,或者這么說:為什么要合理的設(shè)計(jì)后臺(tái)權(quán)限?
那是因?yàn)楹笈_(tái)權(quán)限直接影響了系統(tǒng)的拓展性和兼容性,如果用戶權(quán)限設(shè)計(jì)不到位,極容易出現(xiàn)部分后臺(tái)用戶權(quán)限溢出,或者后臺(tái)用戶出現(xiàn)交叉權(quán)限,出現(xiàn)很多人為的操作失誤。
另外,數(shù)據(jù)權(quán)限控制不到位,容易造成數(shù)據(jù)泄露,尤其是B端系統(tǒng),可能造成內(nèi)部爭(zhēng)搶客戶資源等“惡性”斗爭(zhēng)。
如何相對(duì)合理的設(shè)計(jì)后臺(tái)權(quán)限
關(guān)于后臺(tái)權(quán)限設(shè)計(jì)也有一些現(xiàn)行的方法,比如:RBAC模型,也就是基于角色的權(quán)限訪問控制,這是一個(gè)比較常用的權(quán)限設(shè)計(jì)方法。
參考RBAC模型,結(jié)合這些年的工作經(jīng)驗(yàn),覺得可以通過以下方式實(shí)現(xiàn)對(duì)頁(yè)面權(quán)限、操作權(quán)限與數(shù)據(jù)權(quán)限的管理,我把這種方式稱作:“三位一體法“。
- 后臺(tái)用戶,承載權(quán)限的主體,也影響部分?jǐn)?shù)據(jù)權(quán)限。
- 用戶角色,通過對(duì)角色的管理,實(shí)現(xiàn)對(duì)頁(yè)面與操作權(quán)限的管理。
- 組織結(jié)構(gòu),部門架構(gòu)的樹形結(jié)構(gòu),實(shí)現(xiàn)對(duì)數(shù)據(jù)權(quán)限的管理。
換言之,三位一體:用戶+角色+組織結(jié)構(gòu)=用戶權(quán)限
1. 角色管理
角色是頁(yè)面操作權(quán)限的集合,是一個(gè)權(quán)限集。通過對(duì)角色權(quán)限的修改,可以實(shí)現(xiàn)對(duì)用戶權(quán)限的批量修改。
角色管理需要明確權(quán)限粒度(明確哪些操作需要設(shè)置權(quán)限),對(duì)于權(quán)限粒度的把控是很關(guān)鍵的,可以避免角色設(shè)置過于復(fù)雜。
對(duì)角色的修改和刪除,需要考慮到對(duì)現(xiàn)有用戶的影響,要明確這些操作的后置條件。
看圖說話:
結(jié)合上圖,我們大致可以明白角色管理的實(shí)現(xiàn)方式了。
下面給大家說一下這種實(shí)現(xiàn)方式的弊端:
- 角色設(shè)置要求高,設(shè)置角色的相關(guān)人員需要對(duì)業(yè)務(wù)足夠了解,一旦出現(xiàn)誤操作,會(huì)直接對(duì)線上用戶產(chǎn)生影響;
- 新增功能與頁(yè)面時(shí)需要對(duì)角色進(jìn)行重新配置,可以手動(dòng)完成,也可以自動(dòng)化實(shí)現(xiàn),但每次功能上線都需要將新增的功能與操作分配給對(duì)應(yīng)的角色,一旦遺忘也會(huì)產(chǎn)生影響。
當(dāng)角色過多時(shí),可以準(zhǔn)備一個(gè)角色說明文檔,既可以幫助我們了解現(xiàn)有角色的權(quán)限,又可以減少系統(tǒng)管理人員離職等原因造成的工作交接困難。
2. 組織結(jié)構(gòu)管理
組織結(jié)構(gòu)的管理要從兩個(gè)方向來實(shí)現(xiàn):
一個(gè)是對(duì)組織結(jié)構(gòu)本身的管理,也就是對(duì)部門的增刪改等;另一個(gè)是需要對(duì)后臺(tái)各個(gè)頁(yè)面中信息進(jìn)行梳理歸納,確定信息主體中存在組織結(jié)構(gòu)字段。
(1)組織結(jié)構(gòu)的實(shí)現(xiàn)
看圖說話:
如果短期之內(nèi)后臺(tái)涉及部門不多,可以暫時(shí)不在后臺(tái)實(shí)現(xiàn)該功能模塊,而是通過XML配置文件的方式來實(shí)現(xiàn),這樣可以節(jié)省開發(fā)成本。
(2)頁(yè)面數(shù)據(jù)的梳理歸納
存在了“部門”這個(gè)信息,怎么運(yùn)用這些信息,是我們需要實(shí)現(xiàn)的。在需求產(chǎn)出期間,我們會(huì)完成項(xiàng)目整體的“數(shù)據(jù)信息結(jié)構(gòu)”,可能有不少PM都沒做過這個(gè),還是舉例說明:
用上面提到的教培ERP-學(xué)員管理模塊,該模塊實(shí)現(xiàn)的是對(duì)學(xué)員的管理,信息主體也就是學(xué)員,我們可以看一下學(xué)員的數(shù)據(jù)信息結(jié)構(gòu)(部分):
教培ERP里的組織結(jié)構(gòu)是校區(qū)及其上級(jí)管理部門,如果當(dāng)前后臺(tái)用戶是組織結(jié)構(gòu)中的校區(qū)字段與學(xué)員的授課校區(qū)字段一致,那對(duì)應(yīng)的授課校區(qū)就擁有了查看該學(xué)員信息的數(shù)據(jù)權(quán)限。
數(shù)據(jù)權(quán)限的管理,需要我們對(duì)后臺(tái)所有模塊進(jìn)行分析。而且在同一個(gè)頁(yè)面,可依據(jù)的字段也不單一,就像上圖中的校區(qū)有簽約校區(qū)和授課校區(qū)兩個(gè),實(shí)際情況中可能會(huì)有更多。
也就是說,可以通過多個(gè)字段實(shí)現(xiàn)對(duì)數(shù)據(jù)權(quán)限的管理,因此對(duì)數(shù)據(jù)權(quán)限的梳理,一定要對(duì)業(yè)務(wù)十分的熟稔。
3. 用戶管理
之所以最后再寫用戶,是因?yàn)橛脩羰菍?duì)角色與組織結(jié)構(gòu)的承載,一個(gè)圖,大家也就都看明白了:
上圖中部門=組織結(jié)構(gòu),崗位=角色。
如果存在多個(gè)部門崗位的權(quán)限取并集,通過上述方式實(shí)現(xiàn)用戶權(quán)限管理。
一些總結(jié)的話
后臺(tái)權(quán)限“三位一體”設(shè)計(jì)法適用于普遍場(chǎng)景,因?yàn)楦鞣N系統(tǒng)的實(shí)際業(yè)務(wù)場(chǎng)景不同,所以還會(huì)有很多的特殊場(chǎng)景需要處理。但只要從實(shí)際業(yè)務(wù)場(chǎng)景出發(fā),參考上述權(quán)限設(shè)計(jì)的思路,應(yīng)該是可以產(chǎn)出一個(gè)相對(duì)合理的權(quán)限設(shè)計(jì)方案。
關(guān)于后臺(tái)權(quán)限設(shè)計(jì)還有不少需要注意的細(xì)節(jié)和小技巧,這些需要大家在實(shí)際操作過程中去發(fā)現(xiàn)與挖掘,另外哪怕是To C的產(chǎn)品也應(yīng)該提高對(duì)后臺(tái)的重視程度,后臺(tái)產(chǎn)品是前臺(tái)產(chǎn)品的支撐,在后臺(tái)產(chǎn)品中后臺(tái)權(quán)限有點(diǎn)像筋骨脈絡(luò),只有打通了任督二脈,才能成就絕世武功。
作者:張小墨,微信公眾號(hào):月光坦克(moontank1918),某美股上市互聯(lián)網(wǎng)公司產(chǎn)品經(jīng)理。
本文由 @張小墨 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
你好作者,我在設(shè)計(jì)項(xiàng)目經(jīng)理這個(gè)角色時(shí)候遇到了一點(diǎn)問題,他可以是任何部門的某個(gè)成員,同時(shí)他是某個(gè)產(chǎn)研項(xiàng)目中的項(xiàng)目經(jīng)理,也就是他只負(fù)責(zé)項(xiàng)目中的團(tuán)隊(duì)成員,不對(duì)部門負(fù)責(zé),怎么樣才能把權(quán)限設(shè)計(jì)清楚呢?
頁(yè)面權(quán)限和操作權(quán)限,是不是可以歸類為功能權(quán)限?
可以的,這個(gè)理解相當(dāng)?shù)轿?/p>
挺好的。
不錯(cuò),收益很多,前段時(shí)間對(duì)后臺(tái)權(quán)限進(jìn)行了重新梳理,就是采用類似的操作
我在后臺(tái)權(quán)限設(shè)計(jì)的時(shí)候,就秉持著“瞻前顧后”的原則,盡量避免給以后的工作挖坑
很好