后臺(tái)系統(tǒng):賬號(hào)權(quán)限系統(tǒng)設(shè)計(jì)
![](http://image.woshipm.com/wp-files/img/88.jpg)
文章對(duì)賬號(hào)權(quán)限系統(tǒng)設(shè)計(jì)展開(kāi)分析,希望能夠給你帶來(lái)些啟發(fā)。
一、系統(tǒng)概述
一個(gè)賬號(hào)權(quán)限管理系統(tǒng),主要包括三個(gè)元素:賬號(hào)、角色、權(quán)限。我們所要管理的,也就是賬號(hào)、角色和權(quán)限之間的關(guān)系。
賬號(hào):基本上所有的應(yīng)用,無(wú)論是移動(dòng)端,PC端,C端或B端產(chǎn)品,登陸都需要一個(gè)賬號(hào)。只是對(duì)于C端的產(chǎn)品,都是用戶(hù)自己注冊(cè)即可。而對(duì)于后臺(tái)產(chǎn)品而言,是需要公司內(nèi)部人員去創(chuàng)建賬號(hào)的。
角色:所謂角色,就是用來(lái)控制各個(gè)賬號(hào)的操作范圍的,可以理解為權(quán)限組。因?yàn)橐粋€(gè)系統(tǒng)中權(quán)限太多,我們不可能每創(chuàng)建一個(gè)賬號(hào),就去挨個(gè)設(shè)置一遍權(quán)限,因此可以根據(jù)不同的部門(mén)、職級(jí)、工作內(nèi)容等來(lái)對(duì)權(quán)限進(jìn)行分組,制定成不同的角色,這樣,在創(chuàng)建賬號(hào)時(shí),就可以直接賦予賬號(hào)不同的角色,從而把角色擁有的權(quán)限給到這個(gè)賬號(hào)。
權(quán)限:包括數(shù)據(jù)權(quán)限、操作權(quán)限和頁(yè)面權(quán)限。
一、數(shù)據(jù)權(quán)限:即賬號(hào)可以看到的數(shù)據(jù)范圍,比如一個(gè)旅游行業(yè)的公司管理者能看到公司的所有數(shù)據(jù),而亞太部的人只能看到亞太部門(mén)產(chǎn)生的數(shù)據(jù)。在設(shè)計(jì)過(guò)程中,數(shù)據(jù)權(quán)限控制的難易程度與業(yè)務(wù)和公司部門(mén)設(shè)置的復(fù)雜程度有關(guān)。
二、頁(yè)面權(quán)限&操作權(quán)限:頁(yè)面權(quán)限即賬號(hào)可以看到的頁(yè)面內(nèi)容,操作權(quán)限即用戶(hù)可以進(jìn)行操作的內(nèi)容,如增刪改等。在產(chǎn)品設(shè)計(jì)的過(guò)程中,可以將操作權(quán)限和頁(yè)面權(quán)限結(jié)合起來(lái)做到一個(gè)集合中,創(chuàng)建角色時(shí)將權(quán)限賦予給角色即可。
系統(tǒng)的主要流程為:將權(quán)限設(shè)置成不同的集合,即角色,再將角色綁定到賬號(hào)上,那么這個(gè)賬號(hào)就擁有了這些角色的權(quán)限集合。一個(gè)賬號(hào)可以綁定多個(gè)角色,一個(gè)角色又擁有多個(gè)權(quán)限。
如上圖所示:用戶(hù)A擁有了角色1和角色2兩個(gè)角色,從而擁有了“增加、刪除、審核”的權(quán)限。
二、實(shí)例設(shè)計(jì)
1、賬號(hào)管理
添加/編輯賬號(hào):
在創(chuàng)建賬號(hào)時(shí),一般都需要填寫(xiě)基本信息和設(shè)置角色?;拘畔⒅饕ㄐ彰?,部門(mén),賬號(hào)備注等等,不同企業(yè)需求不同。
此外,為了控制數(shù)據(jù)權(quán)限,還可能會(huì)有賬號(hào)等級(jí)的選擇、賬號(hào)關(guān)聯(lián)、上下級(jí)關(guān)系綁定等操作。具體流程視設(shè)計(jì)情況而定。
2、角色管理
添加/編輯角色:
需要說(shuō)明的是,角色不能隨意刪除或禁用,需要判定該角色有沒(méi)有被哪個(gè)賬號(hào)綁定,若該角色正在被使用,則不允許刪除并給出相應(yīng)的提示。
三、經(jīng)驗(yàn)之談
1、事先可以對(duì)賬號(hào)進(jìn)行一個(gè)等級(jí)劃分(根據(jù)實(shí)際業(yè)務(wù)制定劃分規(guī)則),然后可以根據(jù)等級(jí)來(lái)判定數(shù)據(jù)權(quán)限。如等級(jí)為公司高級(jí)管理者,則可以看到所有的數(shù)據(jù),而等級(jí)為分公司管理員,則根據(jù)分公司的ID或者名稱(chēng)去獲取對(duì)應(yīng)的數(shù)據(jù)等。不過(guò)這個(gè)只能做一個(gè)比較粗略的控制,僅一個(gè)等級(jí)來(lái)控制數(shù)據(jù)權(quán)限是遠(yuǎn)遠(yuǎn)不夠的;
2、考慮是否需要提供賬號(hào)與賬號(hào)之間做數(shù)據(jù)關(guān)聯(lián)的入口。當(dāng)然,這是屬于比較特殊的情況,當(dāng)設(shè)計(jì)的控制數(shù)據(jù)權(quán)限的規(guī)則都不能滿(mǎn)足的時(shí)候,是否需要為特例提供操作入口;
3、考慮是否需要提供一個(gè)賬號(hào)和數(shù)據(jù)之間直接做綁定的入口?如:等級(jí)為分公司管理員,由于業(yè)務(wù)需求,需要看到另外一個(gè)分公司的某條數(shù)據(jù),該如何實(shí)現(xiàn)。當(dāng)然,這里只是舉了一個(gè)很簡(jiǎn)單的例子,實(shí)際實(shí)現(xiàn)時(shí)會(huì)有很多更細(xì)節(jié)和深入的問(wèn)題;
4、若大部分賬號(hào)在權(quán)限上都存在差異,那是否每個(gè)賬號(hào)都需要有一個(gè)設(shè)置詳細(xì)權(quán)限的地方,而僅把角色當(dāng)做一個(gè)快捷選擇的方式。(若不是必需,最好不要采取該種方式,這樣會(huì)破壞權(quán)限的規(guī)范性,不利于維護(hù)和管理);
5、創(chuàng)建角色(權(quán)限組)之前,需要明確各個(gè)部門(mén)之間的業(yè)務(wù)范圍及權(quán)限(包括頁(yè)面權(quán)限和操作權(quán)限),并將這些人就行劃分;當(dāng)然,隨著公司的業(yè)務(wù)和后臺(tái)系統(tǒng)功能的改變,各個(gè)角色的權(quán)限是需要不斷完善和調(diào)整的;
6、在一些系統(tǒng)流程中,還需要為權(quán)限設(shè)置互斥關(guān)系,這樣的話(huà),擁有互斥權(quán)限的兩個(gè)角色就不能同時(shí)綁定給同一個(gè)賬號(hào)了。是否需要這一步操作,需要根據(jù)業(yè)務(wù)情況而定;
7、對(duì)于一些基礎(chǔ)的賬號(hào),在創(chuàng)建賬號(hào)時(shí),是否需要直接根據(jù)賬號(hào)等級(jí)綁定默認(rèn)角色(即給以默認(rèn)權(quán)限)。
暫時(shí)想到的就是這些,后面想到了會(huì)再繼續(xù)補(bǔ)充。
小小產(chǎn)品一枚,文章純屬工作中個(gè)人經(jīng)驗(yàn)總結(jié),歡迎大神拍磚指教。
本文由 @姜蕁 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來(lái)自u(píng)nsplash,基于CC0協(xié)議
一個(gè)賬號(hào)可以綁定多個(gè)角色 /如果有些角色權(quán)限是互斥或者一樣的,那該賬號(hào)的用戶(hù)看的東西是求同存異嗎 ??
個(gè)人理解角色中有權(quán)限是互斥的,那么就應(yīng)該在賬號(hào)分配的時(shí)候設(shè)計(jì)不能選擇互斥角色
其實(shí)我還是想問(wèn)一下,同一個(gè)頁(yè)面不同的角色進(jìn)來(lái)看到的數(shù)據(jù)都是不一樣的(不是字段不同是可產(chǎn)看的數(shù)據(jù)范圍不同),如果要做成可配置化,應(yīng)該怎么去做呢?有沒(méi)有哪位大佬可以解答一下呢,感謝!
對(duì)于字段的數(shù)據(jù)范圍進(jìn)行配置
針對(duì)這個(gè)問(wèn)題,你應(yīng)該有相應(yīng)的解決辦法了吧。我辦法是在添加用戶(hù)的時(shí)候給用戶(hù)進(jìn)行分類(lèi),例如:總經(jīng)理、主管、員工等。對(duì)應(yīng)的賬戶(hù)可見(jiàn)范圍根據(jù)類(lèi)型去進(jìn)行限制加載。不知道你有沒(méi)有更好的實(shí)現(xiàn)方案,歡迎一起探討。
原來(lái)產(chǎn)品并沒(méi)有做賬號(hào)角色權(quán)限的劃分,后期想補(bǔ)上,請(qǐng)教下老數(shù)據(jù)該怎么處理呢?有什么好的思路嗎?
大佬,我有個(gè)后臺(tái)設(shè)計(jì)私活,有興趣聊聊嗎
還有這私活嗎,來(lái),聊聊。
深有同感,有些點(diǎn)我遇到過(guò),有些點(diǎn)給了我擴(kuò)展,超棒啊
超級(jí)棒啊,最近剛剛接觸后臺(tái),很有用的,想請(qǐng)教您一個(gè)細(xì)節(jié),那個(gè)創(chuàng)建員工信息時(shí),是把角色設(shè)置和基本信息分開(kāi)錄入,如果我只填寫(xiě)了員工信息,沒(méi)有選擇角色就點(diǎn)擊了保存,頁(yè)面回到列表頁(yè)還是繼續(xù)請(qǐng)求選擇角色??jī)蓚€(gè)板塊的信息是統(tǒng)一保存還是單獨(dú)保存,可不可以把選擇角色和基本信息放在一個(gè)板塊里呀?
如果一個(gè)用戶(hù)只有一個(gè)角色,且后續(xù)不會(huì)變化,可以添加用戶(hù)信息的時(shí)候一起設(shè)定;但很多情況下,員工可能同時(shí)有多個(gè)角色,且可能會(huì)需要修改調(diào)整。所以,建議分成兩步,添加用戶(hù)信息一步,為用戶(hù)維護(hù)用戶(hù)角色是另外一步。
?? 受用
賬號(hào)權(quán)限設(shè)定好之后,后期增加功能的時(shí)候,是分角色增加功能嗎?比如A角色增加abc功能,B角色增加cd功能??
請(qǐng)問(wèn)下第2點(diǎn)角色管理中的例子中,給角色添加權(quán)限,這里是不是只有頁(yè)面權(quán)限和數(shù)據(jù)權(quán)限,而沒(méi)體現(xiàn)操作權(quán)限呢?操作權(quán)限是不是頁(yè)面上的操作按鈕?
權(quán)限配置應(yīng)該還有一個(gè)單獨(dú)的頁(yè)面,分 頁(yè)面 功能 以及 數(shù)據(jù),對(duì)下邊的子選項(xiàng)進(jìn)行勾選。組合起來(lái)塑造一個(gè)角色
您好!希望加您微信多多交流
您好!希望加您微信多多交流
請(qǐng)問(wèn)數(shù)據(jù)權(quán)限后臺(tái)怎么控制的
這是Axure原型么?
對(duì),是用axure畫(huà)的
賬號(hào)、角色、權(quán)限用三個(gè)維度來(lái)定義用戶(hù)登陸后臺(tái)所擁有的權(quán)限。在真正操作時(shí),是否會(huì)過(guò)于復(fù)雜。因?yàn)槟阋獣r(shí)時(shí)刻刻記住或記錄,對(duì)應(yīng)的用戶(hù)所擁有的的角色與權(quán)限分別是什么。直接在用戶(hù)開(kāi)通賬號(hào)選擇權(quán)限不好嗎?這樣直接開(kāi)權(quán)限即可,不會(huì)出現(xiàn)權(quán)限互斥的問(wèn)題。而且增加用戶(hù)新權(quán)限時(shí),直接選擇對(duì)應(yīng)權(quán)限即可。不用在去找文檔選擇對(duì)應(yīng)角色或新增對(duì)應(yīng)的角色。
一般情況下,一個(gè)系統(tǒng)的權(quán)限會(huì)很多,一個(gè)賬號(hào)甚至可以登錄多個(gè)系統(tǒng),如果每次創(chuàng)建賬戶(hù)的時(shí)候再一個(gè)個(gè)去勾選,其實(shí)是很不現(xiàn)實(shí)的。不過(guò),如果權(quán)限比較少的情況下,你想要這樣設(shè)計(jì)也是可以的,沒(méi)有對(duì)錯(cuò)的問(wèn)題。
極端一點(diǎn)的例子,你可以想象一下 如果今天新增初級(jí)用戶(hù)為5萬(wàn),兩種方案:
1. 把初級(jí)用戶(hù)這個(gè)角色直接assign給所有新增用戶(hù)
2. 手動(dòng)給每個(gè)用戶(hù)去選擇權(quán)限
我們肯定會(huì)選擇方案1呀,節(jié)省了太多時(shí)間和精力,
這就是C與B的區(qū)別,B你不能先考慮操作是否復(fù)雜,而應(yīng)該先考慮是否兼容多種場(chǎng)景,易于維護(hù)。
經(jīng)驗(yàn)之談哈哈哈
看來(lái)這句是你的口頭禪了~
一個(gè)賬號(hào)對(duì)應(yīng)多個(gè)角色,當(dāng)該用戶(hù)登錄系統(tǒng)時(shí),A是一次性看到多個(gè)角色下的全部權(quán)限,B是通過(guò)切換角色的方式查看不同角色的不同權(quán)限。大家更多是采用哪種方案?
肯定是A啊,B的意義何在?考慮什么限制嗎?
一般來(lái)說(shuō)都會(huì)先考慮A吧。
我感覺(jué)要看這多個(gè)角色的數(shù)據(jù)權(quán)限范圍是否一致,如果一致那A是沒(méi)問(wèn)題,如果不一致那應(yīng)該是B。比如一個(gè)人即是部門(mén)A的負(fù)責(zé)人,又是分管財(cái)務(wù)的分管領(lǐng)導(dǎo),作為部門(mén)負(fù)責(zé)人,他有部門(mén)所有事物的權(quán)限,可以訪(fǎng)問(wèn)部門(mén)財(cái)務(wù)、認(rèn)識(shí)、業(yè)務(wù)等數(shù)據(jù),但是作為分管財(cái)務(wù)的飯館領(lǐng)導(dǎo),那他能看整個(gè)單位的財(cái)務(wù)信息,但不能查看其它部門(mén)的人事、業(yè)務(wù)信息,如果合起來(lái),就會(huì)是所有部門(mén)的所有財(cái)務(wù)、人事、業(yè)務(wù)都能拿看了。
評(píng)論沒(méi)有編輯功能?發(fā)現(xiàn)錯(cuò)別字都不能修改了。
為部門(mén)角色規(guī)劃?rùn)?quán)限的事情,產(chǎn)品還是少/不去摻和,由運(yùn)營(yíng)人員去和對(duì)應(yīng)的業(yè)務(wù)部去對(duì)接。個(gè)中緣由,一想就通。
經(jīng)驗(yàn)之談
很不錯(cuò),我現(xiàn)在的系統(tǒng)都是這樣設(shè)計(jì)的,基本上現(xiàn)在的后臺(tái)系統(tǒng)賬號(hào)權(quán)限設(shè)計(jì)都大同小異
是啊,最基本的元素都是那幾個(gè)
簡(jiǎn)單點(diǎn)的,賬號(hào)-角色-權(quán)限,如果權(quán)限比較多就賬號(hào)-角色-權(quán)限組-權(quán)限 ?? 我現(xiàn)在倆個(gè)系統(tǒng)就是這樣弄的
恩呢都差不多,我現(xiàn)在也是賬號(hào)——角色——權(quán)限:oops:
很不錯(cuò),受教了 ??
個(gè)人感覺(jué),一個(gè)賬戶(hù)只有一個(gè)角色,一個(gè)角色可以有多個(gè)權(quán)限,而且還要考慮原始角色設(shè)計(jì),即有一個(gè)角色擁有所有的權(quán)限,隨著系統(tǒng)功能的增加,權(quán)限自動(dòng)增加,由它賦予其他角色新的權(quán)限或者建立角色
一個(gè)賬戶(hù)擁有多個(gè)角色,是為了角色的權(quán)限統(tǒng)一化,如果一個(gè)賬戶(hù)只允許有一個(gè)角色的話(huà),根據(jù)公司人員和業(yè)務(wù)需求不同,勢(shì)必會(huì)出現(xiàn)一大堆不標(biāo)準(zhǔn)化的“角色”,到后期對(duì)角色的管控是有很大風(fēng)險(xiǎn)的 ??
很好 先收藏
基礎(chǔ)很牢,不知道,再往點(diǎn)的問(wèn)題,如,,復(fù)雜的部門(mén)權(quán)限如何劃分,這種,你是怎么解決的
后面會(huì)再繼續(xù)整理完善的 ??
正準(zhǔn)備寫(xiě)這個(gè)需求,涉及到總公司分公司幾十個(gè)用戶(hù),8個(gè)角色,受教了。
一起學(xué)習(xí)進(jìn)步
梳理的很全面了!創(chuàng)建賬號(hào)時(shí)選擇角色應(yīng)該屬必填項(xiàng),如果過(guò)于復(fù)雜的業(yè)務(wù)其實(shí)并不適合
嗯嗯?,F(xiàn)在是基于工作中涉及到的項(xiàng)目整理的,后面會(huì)繼續(xù)思考學(xué)習(xí),謝謝提示 ??
RBAC
考慮是否需要提供賬號(hào)與賬號(hào)之間做數(shù)據(jù)關(guān)聯(lián)的入口。當(dāng)然,這是屬于比較特殊的情況,當(dāng)設(shè)計(jì)的控制數(shù)據(jù)權(quán)限的規(guī)則都不能滿(mǎn)足的時(shí)候,是否需要為特例提供操作入口;
請(qǐng)教下 這句話(huà) 不是很理解 賬號(hào)和賬號(hào)之間怎么做數(shù)據(jù)關(guān)聯(lián)呢?是針對(duì)哪種用戶(hù)。
其實(shí)我也不知道這樣表述正不正確。這句話(huà)想表達(dá)的意思是:比如某個(gè)部門(mén)所有人的默認(rèn)權(quán)限是自己只能看到自己創(chuàng)建的數(shù)據(jù),A只能看到他自己創(chuàng)建的,B也只能看到他自己創(chuàng)建的,若A也想要看到B的數(shù)據(jù),那是不是可以把兩個(gè)賬號(hào)做關(guān)聯(lián)從而實(shí)現(xiàn)數(shù)據(jù)共享呢。
這個(gè)地方的業(yè)務(wù)特點(diǎn)可能不應(yīng)該屬于權(quán)限系統(tǒng)的范疇了吧,是否考慮可以通過(guò)業(yè)務(wù)操作來(lái)實(shí)現(xiàn)呢
有時(shí)候要根據(jù)實(shí)際情況做調(diào)整 這些也不是絕對(duì)的
千人千面
很棒?。?!
想要轉(zhuǎn)發(fā)在我們公司內(nèi)部平臺(tái)分享可以嗎
我司的產(chǎn)品是從兩個(gè)層面去闡述的
1.業(yè)務(wù)層面:用戶(hù),崗位,部門(mén)
2.系統(tǒng)層面:數(shù)據(jù)權(quán)限,功能權(quán)限
用戶(hù)即是賬號(hào),被賦予了崗位和部門(mén)
崗位則是功能權(quán)限的集合,按照需求給崗位設(shè)置相對(duì)應(yīng)的功能權(quán)限
部門(mén)則是數(shù)據(jù)權(quán)限的集合,按照需求給部門(mén)設(shè)置相對(duì)應(yīng)的數(shù)據(jù)權(quán)限
簡(jiǎn)單來(lái)說(shuō),崗位和部門(mén)結(jié)合為用戶(hù);數(shù)據(jù)權(quán)限和功能權(quán)限結(jié)合為賬號(hào)權(quán)限
最近正好也在做這一塊,我的想法跟你的設(shè)計(jì)類(lèi)似。想就此咨詢(xún)一下:
1.你的意思是繞開(kāi)了角色這一概念嗎?
2.我也覺(jué)得這樣更符合公司組織架構(gòu)或者更好理解,公司組織中,不同的崗位就擁有不同的權(quán)限,也就是說(shuō)崗位就是系統(tǒng)上說(shuō)的角色,然后把權(quán)限賦給崗位,崗位賦給用戶(hù) 是這樣嗎?
3.部門(mén)就是數(shù)據(jù)權(quán)限的集合:那如果要給部門(mén)中的不同崗位賦予不同的數(shù)據(jù)權(quán)限要怎么辦呢?
不好意思,下午才看到你的信息
1.角色即是崗位,概念一樣,稱(chēng)呼不同而已。
2.你的理解是正確的
3.在系統(tǒng)層面,部門(mén)和崗位是獨(dú)立而平行的,也就是說(shuō),你可以任意組合部門(mén)和崗位之間的關(guān)系
謝謝你的回復(fù)~~ ??
第三點(diǎn)我還不是很明白,對(duì)數(shù)據(jù)權(quán)限的理解我還不是很透徹 你會(huì)不會(huì)有什么指教給到我呢?
同一BU的設(shè)計(jì)和運(yùn)營(yíng)能看的數(shù)據(jù)肯定不完全相同,所以不用太死板地認(rèn)為部門(mén)就決定數(shù)據(jù)權(quán)限。不過(guò)可取之處就是,角色可以從部門(mén)*崗位*職級(jí)3個(gè)小維度來(lái)做控制,決定到底哪些權(quán)限掛在下面。
那數(shù)據(jù)權(quán)限還是需要通過(guò)配置的方式來(lái)設(shè)置嗎?還是數(shù)據(jù)權(quán)限是通過(guò)什么方式來(lái)控制的呢?
如果具體場(chǎng)景,需要為同一個(gè)部門(mén)的不同人劃分?jǐn)?shù)據(jù)權(quán)限的話(huà),也可以做一個(gè)頁(yè)面來(lái)配置,只要確保數(shù)據(jù)集合能夠區(qū)分到一定的粒度。但是通常來(lái)說(shuō),通過(guò)部門(mén)(更應(yīng)該說(shuō)是組織架構(gòu),重點(diǎn)是節(jié)點(diǎn)間的關(guān)系)已經(jīng)劃分了數(shù)據(jù)權(quán)限了,舉個(gè)OA的例子——工作日志,比如頂級(jí)部門(mén)A,子部門(mén)A1,子部門(mén)A2,那么A1可以看到A1部門(mén)下所有人的工作日志,A2可以看到A2部門(mén)下所有人的工作日志,A就可以看到A1,A2下的工作日志,這是不需要單獨(dú)配置的,組織架構(gòu)已經(jīng)確立了這種關(guān)系了,當(dāng)然這里還會(huì)考慮限制數(shù)據(jù)可見(jiàn)的層級(jí)數(shù)的問(wèn)題,根據(jù)具體需求來(lái)判斷了。
明白了 非常謝謝 ??
寫(xiě)得已經(jīng)很全面了,本質(zhì)是RBAC模型的實(shí)踐,經(jīng)驗(yàn)之談的部分很不錯(cuò),很多復(fù)雜的業(yè)務(wù)邏輯都考慮到了,很棒
謝謝鼓勵(lì)
非常感謝!正在準(zhǔn)備案例,希望轉(zhuǎn)崗成功
加油,共同交流進(jìn)步