電商行業(yè)中,后臺(tái)會(huì)有客服、采購、財(cái)務(wù)等不同的角色,對(duì)應(yīng)展示不同權(quán)限、界面數(shù)據(jù)。在設(shè)計(jì)B端后臺(tái)權(quán)限模塊時(shí),簡單的用權(quán)限勾選即可,然而復(fù)雜的需要涉及到多角色、多權(quán)限相互匹配的場景中,則需要引入一個(gè)概念——RBAC權(quán)限模型。本文作者對(duì)RBAC權(quán)限模型進(jìn)行了介紹,一起來看一下吧。
這是一篇實(shí)戰(zhàn)經(jīng)驗(yàn)+概念解釋文章。
想法來自近期在進(jìn)行一個(gè)后臺(tái)產(chǎn)品中,涉及到權(quán)限管理的設(shè)計(jì),需要設(shè)計(jì)多種角色、并需要對(duì)應(yīng)不同級(jí)別,需要區(qū)分不同權(quán)限的設(shè)計(jì),說半天,上個(gè)圖!
【資料圖】
大概意思就是在D的角色下會(huì)有A、B、C這3人,而C又包含角色A、B的權(quán)限,角色A、B下方又有A-1、B-1等人;而D擁有最大權(quán)限,對(duì)應(yīng)下分不同角色配對(duì)不同權(quán)限,而下一級(jí)又是不同權(quán)限!于是一層層套娃開始了!
做過電商行業(yè)的應(yīng)該都知道,在后臺(tái)會(huì)有客服、采購、財(cái)務(wù)等不同的角色,對(duì)應(yīng)展示不同權(quán)限、界面數(shù)據(jù)。
這就要求設(shè)計(jì)師在設(shè)計(jì)時(shí),就要從業(yè)務(wù)角度上,去對(duì)每個(gè)角色進(jìn)行代入、根據(jù)實(shí)際業(yè)務(wù)理解后進(jìn)行設(shè)計(jì)。
通常在設(shè)計(jì)B端后臺(tái)權(quán)限模塊時(shí),需要先厘清角色與權(quán)限之前的關(guān)系,比如對(duì)子賬號(hào)進(jìn)行角色管理、權(quán)限分配等場景進(jìn)行分類,如果簡單一點(diǎn)的模式設(shè)計(jì)就很好處理,用權(quán)限勾選即可,但復(fù)雜一點(diǎn)的就需要涉及到多角色、多權(quán)限相互匹配的場景中,簡單權(quán)限勾選就不足以支撐起權(quán)限模塊了。
因此,在B端后臺(tái)界面設(shè)計(jì)中,就需要引入一個(gè)概念:RBAC權(quán)限模型,現(xiàn)今權(quán)限設(shè)置幾乎都是在RBAC模型上進(jìn)行擴(kuò)展的,本文下面將會(huì)對(duì)RBAC權(quán)限模型進(jìn)行簡略介紹。
一、RBAC模型定義
那說起RBAC權(quán)限模型,那我們來看下它在“維基”上的定義:
可以看到:RBAC是Role-Based Access Control的英文縮寫,意思就是以【角色】為基礎(chǔ)進(jìn)行【權(quán)限】的【控制】。
換句話說:就是劃定【權(quán)限】范圍,賦予【角色】,再將【角色】賦予【賬戶】,這樣【賬戶】擁有了權(quán)限,權(quán)限邊界會(huì)很清晰,而去命定賬戶權(quán)限時(shí)只要去管理角色即可。
還是不懂?看圖
例:RBAC簡單示例
再用王者榮耀來比喻:
角色 == 英雄人物
權(quán)限 == 英雄技能
賬戶 == QQ/微信賬號(hào)
使用【英雄人物】的就是你的賬戶,賬戶可以擁有多個(gè)英雄人物,管理權(quán)限的時(shí)候只要去管理【英雄人物】就行了。
二、RBAC模型細(xì)項(xiàng)說明
在RBAC模型中,有三個(gè)比較重要的概念:
權(quán)限:原子級(jí)別功能,能夠訪問某個(gè)數(shù)據(jù)或者進(jìn)行某個(gè)操作的資格或權(quán)力
角色:分子級(jí)別功能,對(duì)某一類共同擁有權(quán)限集合群體名稱
賬戶:組合功能,對(duì)擁有角色集合的群體名稱
下面對(duì)每個(gè)概念進(jìn)行說明。
1. 權(quán)限說明
在計(jì)算機(jī)系統(tǒng)中,權(quán)限是指某個(gè)特定的用戶具有特定的系統(tǒng)資源的使用權(quán)力,在后臺(tái)管理中,系統(tǒng)資源指的是系統(tǒng)模塊、頁面、操作功能等。
大致可以將權(quán)限分為:功能操作權(quán)限、數(shù)據(jù)權(quán)限。
功能操作權(quán)限:在系統(tǒng)的操作、交互都是功能權(quán)限,操作都需要頁面承載,所以包瀏覽頁面權(quán)限、操作按鈕權(quán)限都?xì)w屬功能操作權(quán)限
數(shù)據(jù)權(quán)限:對(duì)數(shù)據(jù)進(jìn)行增刪改查
例:權(quán)限的構(gòu)成圖
2. 角色說明
角色是一定數(shù)量的權(quán)限的集合以及載體,很好理解,就是界定好哪幾個(gè)角色擁有哪些權(quán)限。
比如角色一擁有:查看訂單、修改訂單價(jià)格、確認(rèn)發(fā)貨、訂單評(píng)價(jià) 等權(quán)限,那角色一其實(shí)定義的是客服角色,那就可以給角色一命名為【客服】。
如下圖所示:
例:新增角色操作界面
3. 賬戶說明
賬戶是對(duì)角色的囊括,也是角色集合的載體,即界定賬戶擁有哪些角色,對(duì)應(yīng)擁有哪些角色的權(quán)限。
如下圖所示:
例:賬戶對(duì)應(yīng)的角色
4. 升級(jí)模型:RBAC1模式
上述所有模型是基礎(chǔ)模型,實(shí)際業(yè)務(wù)中僅有基礎(chǔ)模式是不夠使用的。
比如一個(gè)系統(tǒng)中有了角色:管理員、客服、采購、財(cái)務(wù)等。
但財(cái)務(wù)下會(huì)有多種角色,例如:總賬會(huì)計(jì)、明細(xì)帳會(huì)計(jì)、出納等角色,故此對(duì)RBAC模型進(jìn)行升級(jí),會(huì)把一開始沒有上下級(jí)關(guān)系的稱為RBAC0模型,在RBAC0基礎(chǔ)上引入角色間的上下級(jí)關(guān)系,升級(jí)后稱為為RBAC1模型。
如下圖所示:
例:RBAC1模型
在RBAC1之后還有RBAC2、RBAC3等關(guān)系,較為復(fù)雜,不在本次討論范圍之內(nèi)。
三、設(shè)計(jì)中引用RBAC模型的好處
RBAC中具有角色的概念,設(shè)想一下,如果系統(tǒng)中沒有角色,那么需要設(shè)置每個(gè)賬戶的權(quán)限,如果較復(fù)雜系統(tǒng)中,涉及到權(quán)限都非常多,每個(gè)賬戶都單獨(dú)設(shè)置一遍,無疑是一件繁瑣且工作量巨大的任務(wù),可以說引用RBAC模型可以大大提高生產(chǎn)力。
在還未引入模型時(shí),需要對(duì)每個(gè)賬戶都進(jìn)行權(quán)限限定,參考下圖,線條代表了需要操作的次數(shù)。
如果引入角色后,只需要給將角色給不同賬戶,給角色賦予權(quán)限,這樣賬戶擁有的角色就直接擁有了該角色下的所有權(quán)限。
四、實(shí)戰(zhàn):如何設(shè)計(jì)RBAC模型
1. 梳理權(quán)限
可以對(duì)頁面當(dāng)中擁有哪些可操作項(xiàng)收集,通常權(quán)限都是由系統(tǒng)、頁面操作限定的,可以梳理一下產(chǎn)品整體框架,對(duì)所有權(quán)限進(jìn)行分類。
比如千牛商家后臺(tái),在【店鋪】一級(jí)頁面下,擁有【店鋪管理】【商戶中心】【神筆】【營銷管理】四大權(quán)限,在這四大權(quán)限之下又擁有次級(jí)頁面,在次級(jí)頁面下?lián)碛懈鱾€(gè)模塊的操作,這樣從功能操作+數(shù)據(jù)上實(shí)現(xiàn)了集合。
如下圖:
例:千牛商家自定義權(quán)限
2. 命定角色
從擁有【店鋪】整體權(quán)限來分析,其實(shí)更多是關(guān)于到整體運(yùn)營層屬性,所以在歸屬【店鋪】權(quán)限,可以對(duì)應(yīng)到【運(yùn)營組長】【運(yùn)營專員】等角色。
如下圖:
例:千牛商家命定角色
3. 賬號(hào)限定
其實(shí)對(duì)賬號(hào)的限定很簡單,重點(diǎn)是對(duì)賬號(hào)擁有哪些角色范圍圈定,圈定角色之后就隸屬于哪個(gè)部門使用賬號(hào)的問題了
如下圖:
例:千牛商家命定賬號(hào)
大功告成!完成這3步就完成整體設(shè)定啦!
總結(jié)一下
B端后臺(tái)權(quán)限設(shè)計(jì)引入RBAC權(quán)限模型設(shè)計(jì),是基于角色進(jìn)行的權(quán)限訪問控制,再進(jìn)行對(duì)角色進(jìn)行賬號(hào)匹配。在進(jìn)行產(chǎn)品設(shè)計(jì)時(shí),盡量使用權(quán)限、賬號(hào)分開模式去設(shè)計(jì),而使用角色——權(quán)限匹配模式來做解耦。
后臺(tái)類或者TO B內(nèi)部產(chǎn)品,不會(huì)像C端用戶一樣權(quán)限簡單,也不會(huì)追求極致用戶體驗(yàn),而是追求明確、結(jié)構(gòu)清晰,不要在交互操作或文字上,讓使用者有疑惑,尤其針對(duì)權(quán)限一塊,或涉及業(yè)務(wù)功能設(shè)計(jì)上,盡量減少歧義,避免造成返工、錯(cuò)誤理解等情況。
另附帶RBAC模型升級(jí)概念解釋,下期見!
RBAC0:是RBAC的核心思想
RBAC1:RBAC基礎(chǔ)上增加了角色分層模型,即進(jìn)行了角色上下級(jí)區(qū)分
RBAC2:RBAC基礎(chǔ)上增加了約束模型,什么是約束呢,就是賬號(hào)想要獲得高級(jí)權(quán)限,必須先擁有低級(jí)權(quán)限,否則無法命定
RBAC3:其實(shí)是RBAC2 + RBAC1,雙重限定條件
本文由 @無塵弟弟 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自 Unsplash,基于 CC0 協(xié)議。
關(guān)鍵詞: B端設(shè)計(jì)師必懂(一)RBAC權(quán)限系統(tǒng) 電商行業(yè) rbac