10張圖,系統(tǒng)掃盲權(quán)限管理功能設(shè)計(jì)思路
大家好,見字如面,我是穆寧。
今天,應(yīng)產(chǎn)品穆屋群友要求,給大家系統(tǒng)講解下權(quán)限管理功能的設(shè)計(jì)思路。也是為沒有做過(guò)權(quán)限管理功能模塊或即將要做的同學(xué),做一下系統(tǒng)掃盲。
還是那句話,做產(chǎn)品有個(gè)基本設(shè)定:
定位確定需求,需求確定功能。
所以權(quán)限管理功能從某種意義上必然是滿足了某類需求的,我們就從需求說(shuō)起,聊一聊管理后臺(tái)。
權(quán)限管理模塊的需求目標(biāo)包括如下三點(diǎn):
(1)對(duì)應(yīng)用系統(tǒng)的所有資源進(jìn)行權(quán)限控制,比如應(yīng)用系統(tǒng)的功能菜單、各個(gè)界面的按鈕控件等進(jìn)行權(quán)限的操控;
(2)完善用戶、角色、組織、資源、操作的管理功能,其中的組織管理模塊只提供組織視圖,不參與權(quán)限的控制管理。
(3)開發(fā)人員開發(fā)新的系統(tǒng)功能,通過(guò)資源和角色模塊進(jìn)行操作管理。使用系統(tǒng)管理員身份登陸,直接將訪問(wèn)路徑作對(duì)角色資源授權(quán)給操作,實(shí)現(xiàn)資源訪問(wèn)控制管理。
所以從需求范圍層面來(lái)看,權(quán)限可以分為三種:頁(yè)面權(quán)限,操作權(quán)限,數(shù)據(jù)權(quán)限。
頁(yè)面權(quán)限控制你可以看到哪個(gè)頁(yè)面,看不到哪個(gè)頁(yè)面,又稱為菜單權(quán)限控制。很多系統(tǒng)都只做到了控制頁(yè)面這一層級(jí),它實(shí)現(xiàn)起來(lái)比較簡(jiǎn)單,并且與操作權(quán)限有一定的關(guān)聯(lián)性,所以在此我們將它與操作權(quán)限歸并。(頁(yè)面權(quán)限可以理解為操作權(quán)限的最底層權(quán)限:瀏覽)
操作權(quán)限則控制你可以在頁(yè)面上操作哪些按妞。當(dāng)我們進(jìn)入一個(gè)頁(yè)面,我們的目的無(wú)非是在這個(gè)頁(yè)面上進(jìn)行增刪改查,那在頁(yè)面上對(duì)應(yīng)的操作可能是:查詢,刪除,編輯,新增四個(gè)按鈕)可能你在某個(gè)頁(yè)面上,只能查詢數(shù)據(jù),而不能修改數(shù)據(jù)。
數(shù)據(jù)權(quán)限則是控制你可以查閱、管理、導(dǎo)出哪些數(shù)據(jù),比如A部門的人只能看到或者修改A創(chuàng)建的數(shù)據(jù),他看不到或者不能修改B部門的數(shù)據(jù)。
好,說(shuō)完權(quán)限管理的范圍,我們接下來(lái)考慮,怎么樣對(duì)操作權(quán)限與數(shù)據(jù)權(quán)限進(jìn)行管理。這里我們引入一個(gè)成熟概念,叫做RBAC模型。
RABC(Role-Based Access Control),基于角色得訪問(wèn)控制。通俗說(shuō),就是,權(quán)限不會(huì)直接分配到用戶,而是分配到用戶所擁有得角色。
這樣的好處是什么?好處就是如果用戶全體特別大,分配權(quán)限就能累死人,基于RBAC更適合企業(yè)應(yīng)用得權(quán)限控制。
RBAC得四大模型RBAC根據(jù)這套模型功能的復(fù)雜程度不同,由簡(jiǎn)單到復(fù)雜又可以分為RBAC-0、RBAC-1、RBAC-2、RBAC-3四個(gè)層級(jí)。
RBAC-0:
RBAC-0是最基礎(chǔ)的,就是在用戶與角色、角色與權(quán)限間建立關(guān)系,每種關(guān)系均為多對(duì)多。
RBAC-1:
RBAC-1是在RBAC-0的基礎(chǔ)上,增加了繼承關(guān)系。就是一個(gè)角色只能有另一角色的部分權(quán)限,這個(gè)角色的權(quán)限大小受另一角色權(quán)限影響。簡(jiǎn)單說(shuō),角色2由角色1派生,那么角色2所有得權(quán)限必然小于角色1,角色1擁有權(quán)限1,2,而角色2只有擁有權(quán)限1。
RBAC-2:
RBAC-2模型,其實(shí)就是角色沖突,一個(gè)簡(jiǎn)單例子,你不能即是運(yùn)動(dòng)員也是裁判員,這樣關(guān)系就亂了。這里就是用戶3,不能同時(shí)擁有角色2,3。
RBAC-3:
RBAC-3是RBAC-1與RBAC-2的結(jié)合,可以理解為1+2。就是既有繼承關(guān)系,又有限制條件,基礎(chǔ)都一樣。
好,說(shuō)完RBAC模型,我們進(jìn)入到下一環(huán)節(jié)。如何利用RBAC模型,對(duì)操作權(quán)限、數(shù)據(jù)權(quán)限進(jìn)行管理呢?
(1)數(shù)據(jù)權(quán)限管理
數(shù)據(jù)權(quán)限是指用戶是否能夠看到某些數(shù)據(jù)。主要應(yīng)用在數(shù)據(jù)有保密要求,或數(shù)據(jù)量大,需按用戶或角色來(lái)進(jìn)行區(qū)分時(shí)。例如:財(cái)務(wù)主管在后臺(tái)可以看到公司所有人的工資流水,但普通員工只能看到自己的工資流水。
在這里,有的同學(xué)或許認(rèn)為,既然我們的權(quán)限是跟角色關(guān)聯(lián),為什么“查看工資流水”這個(gè)權(quán)限精確到每個(gè)用戶了呢?其實(shí)這就是RBAC-2的一種,權(quán)限與角色關(guān)聯(lián)后增加了限制條件,不過(guò)這種限制條件無(wú)法在頁(yè)面上靈活配置。數(shù)據(jù)權(quán)限的顆粒度由粗到細(xì)可以分為菜單級(jí)、欄目級(jí)、字段級(jí),一般配置頁(yè)面都可以靈活操作。
(2)操作權(quán)限管理
操作權(quán)限是指用戶是否能夠操作對(duì)應(yīng)按鈕。需要先有數(shù)據(jù)權(quán)限,才有操作權(quán)限,所以需要增加系統(tǒng)自動(dòng)校驗(yàn):選擇了操作權(quán)限,就默認(rèn)勾選了查看(數(shù)據(jù))權(quán)限;取消了數(shù)據(jù)權(quán)限,就自動(dòng)取消了操作權(quán)限;以上就是我們做單系統(tǒng)的權(quán)限設(shè)計(jì)分享的內(nèi)容。在多系統(tǒng)的權(quán)限設(shè)計(jì)中,雖然理論基礎(chǔ)一樣,但因?yàn)樯婕暗蕉鄠€(gè)系統(tǒng),所以產(chǎn)生了很多其他問(wèn)題,需要另外解決。
權(quán)限管理
每個(gè)用戶組的管理員都有添加用戶,授予用戶權(quán)限的能力。
權(quán)限的意思就是對(duì)某個(gè)資源的某個(gè)操作,現(xiàn)在規(guī)定:所謂資源,即系統(tǒng)的模塊;所謂操作,包括:增加、刪除、修改、查詢等操作。
權(quán)限管理系統(tǒng)的總體功能分為:授權(quán)與認(rèn)證。授權(quán),指將權(quán)限授予角色或用戶。如果用戶A擁有角色B、角色C,那么,缺省的情況下,用戶A將擁有被分配給角色A和角色C的所有權(quán)限。如果用戶擁有多個(gè)角色,那么用戶的權(quán)限是這些角色權(quán)限的合集。
總體上,可分為模塊管理、角色管理,用戶組管理和用戶管理模塊:
模塊管理:
因?yàn)槟K是一個(gè)樹狀結(jié)構(gòu)(本系統(tǒng)只支持兩級(jí)模塊的結(jié)構(gòu)),我們可以點(diǎn)擊其中一個(gè)模塊以便打開其子模塊來(lái)維護(hù);
角色管理:
可以添加角色信息、刪除角色信息以及給角色授權(quán)。在這個(gè)界面上,按照兩級(jí)模塊的形式列出系統(tǒng)所有模塊,以及在這些模塊上面的CRUD(添加、讀取、更新、刪除)權(quán)限;所謂“啟用”,意思是本設(shè)置有效,否則設(shè)置無(wú)效。
用戶組管理:
與角色管理流程基本相似,只不過(guò),用戶組所具有的權(quán)限是其用戶組下的用戶基本的權(quán)限,而角色所具有的權(quán)限是其用戶組下的用戶附加的權(quán)限。
用戶管理:
因?yàn)橛脩魧?shí)際上就是系統(tǒng)人員的帳號(hào),而且每個(gè)人只能擁有一個(gè)帳號(hào),所以用戶管理主界面,實(shí)際上就是系統(tǒng)所有人員的列表!
【分配帳號(hào)】 - 給人員分配帳號(hào),如果已經(jīng)有帳號(hào),則提示無(wú)法繼續(xù)分配帳號(hào),如果想修改帳號(hào)的話,需要先刪除帳號(hào),再重新分配
【刪除帳號(hào)】- 提示是否刪除,如果確定,再發(fā)出刪除請(qǐng)求,在刪除成功之后,刷新界面。
【分配角色】- 給用戶分配角色,一個(gè)用戶可以擁有多個(gè)角色;
好了,今天我們的系統(tǒng)掃盲就到這里,如果覺得對(duì)你有幫助,歡迎。相關(guān)權(quán)限管理系統(tǒng)案例及思維導(dǎo)圖,可在公眾號(hào)中按照如下操作領(lǐng)取。
我是穆寧,你的產(chǎn)品知識(shí)系統(tǒng)掃盲小幫手,快來(lái)關(guān)注我,我們明天見!
我的書:《產(chǎn)品思維模型-方法與實(shí)踐》
我是穆寧,讓我做下自我介紹
工作多年后辭職,考了個(gè)北郵碩士
混過(guò)BAT做過(guò)PM,創(chuàng)過(guò)業(yè),現(xiàn)央企搬磚
虎嗅,36kr,人人產(chǎn)品經(jīng)理專欄作家
互聯(lián)網(wǎng)撰稿人 | 音樂人 | 網(wǎng)球手
別被任何人定義,你我都是獨(dú)一無(wú)二
本文來(lái)自微信公眾號(hào) “產(chǎn)品思維模型”(ID:muningtalk),作者:穆寧,36氪經(jīng)授權(quán)發(fā)布。
