用戶權(quán)限系統(tǒng)設(shè)計(jì)與RBAC模型

權(quán)限管理,就是解決 “Who對(duì)What(Which)進(jìn)行How的操作” 問題。


在 2B產(chǎn)品的用戶角色設(shè)計(jì)思路 一文中,著重探討了在整個(gè)系統(tǒng)中,用戶和角色的關(guān)系,并基于業(yè)務(wù)過程對(duì)角色進(jìn)行了場(chǎng)景的細(xì)分,并詳細(xì)的解釋了為什么要在做產(chǎn)品原型設(shè)計(jì)之前分析業(yè)務(wù)角色,設(shè)計(jì)各個(gè)角色的關(guān)系。

本文則討論如何基于用戶角色進(jìn)行權(quán)限管理。

權(quán)限管理的基本概念

系統(tǒng)的權(quán)限管理,簡(jiǎn)單的說就是針對(duì)不同身份的用戶設(shè)置不同級(jí)別的訪問、請(qǐng)求和處理數(shù)據(jù)的范圍級(jí)別??紤]的是企業(yè)的數(shù)據(jù)安全和信息隱私問題。

對(duì)2B的產(chǎn)品而言,必須充分考慮到業(yè)務(wù)的復(fù)雜性和擴(kuò)展性,使得產(chǎn)品的業(yè)務(wù)管理和控制權(quán)限能夠隨著業(yè)務(wù)和組織架構(gòu)的發(fā)展而快速部署,需要特別注意的是,不同的業(yè)務(wù)形態(tài)、不同的管理機(jī)制,都會(huì)給權(quán)限系統(tǒng)的設(shè)計(jì)帶來重要影響。

這也是為什么2B的產(chǎn)品難以標(biāo)準(zhǔn)化的一個(gè)因素——業(yè)務(wù)的獨(dú)特性和(管理)文化的獨(dú)特性。

權(quán)限管理,本質(zhì)上是對(duì)用戶,以及用戶的行為的范圍控制,通過一種巧妙的設(shè)計(jì),約束不同身份的用戶在系統(tǒng)上的操作路徑和操作權(quán)限。這里涉及到三個(gè)關(guān)鍵問題:

1、用戶與角色

用戶,指的是真實(shí)“人”,是系統(tǒng)上每一個(gè)具體的操作實(shí)體(系統(tǒng)的一個(gè)賬號(hào)),而角色這是一個(gè)抽象概念。比如管理員是一個(gè)角色,一個(gè)系統(tǒng)可以配置多個(gè)管理員賬戶。

這里還需要區(qū)別一個(gè)概念:業(yè)務(wù)角色和權(quán)限角色。

業(yè)務(wù)角色是針對(duì)業(yè)務(wù)過程的抽象,而權(quán)限系統(tǒng)的角色,則是對(duì)管理過程的抽象。兩種之間存在一定的相關(guān)性,多數(shù)情況下業(yè)務(wù)角色是可以直接對(duì)應(yīng)為系統(tǒng)的權(quán)限角色。

2、行為與資源

用戶在系統(tǒng)上的行為,可歸納為兩類:

  • 數(shù)據(jù)權(quán)限:可以查看、操作的數(shù)據(jù)范圍,比如部經(jīng)理可以查看整個(gè)部門的業(yè)務(wù)數(shù)據(jù),而員工只可以查看個(gè)人的數(shù)據(jù)
  • 功能權(quán)限:對(duì)系統(tǒng)資源(頁面、菜單、按鈕等)的查看、操作權(quán)限,比如某個(gè)菜單的可見性

3、關(guān)系管理

考慮的是整個(gè)組織的管理架構(gòu),是一對(duì)一還是一對(duì)多關(guān)系,是否有層級(jí)劃分,是否有繼承關(guān)系等。

從這三個(gè)關(guān)鍵詞中,我們就能理解整個(gè)權(quán)限管理,解決的就是某個(gè)用戶在訪問系統(tǒng)時(shí),可以查看什么內(nèi)容,執(zhí)行什么操作,得到什么結(jié)果。

也就是權(quán)限控制系統(tǒng),管理的是用戶行為的集合,也就是建立一套用戶使用資源的規(guī)則。

這個(gè)集合來自于產(chǎn)品的“用戶畫像”,用戶擁有的系統(tǒng)資源即可通過標(biāo)簽系統(tǒng)來進(jìn)行分類管理。

在實(shí)際應(yīng)用中,特別是平臺(tái)型產(chǎn)品,權(quán)限的管理非常嚴(yán)格,同時(shí)也非常復(fù)雜。比如一個(gè)O2O平臺(tái)有1000個(gè)門店就很難通過創(chuàng)建1000個(gè)用戶分別來分配權(quán)限的方式進(jìn)行管理和維護(hù)。

必須要有一個(gè)高效的模型解決這種復(fù)雜的業(yè)務(wù),這個(gè)模型就是RBAC。

RBAC設(shè)計(jì)實(shí)踐

RBAC的思想,即用角色來解耦權(quán)限和用戶的關(guān)系,其目的是解決日益增長(zhǎng)的業(yè)務(wù)所帶來的快速增長(zhǎng)的用戶和權(quán)限數(shù)量。

傳統(tǒng)(早期)的直接為用戶配置權(quán)限的設(shè)計(jì)模型,由于其耦合性太高,必然導(dǎo)致維護(hù)性和擴(kuò)展性隨業(yè)務(wù)增長(zhǎng)來極速降低,無法支持大型業(yè)務(wù)平臺(tái)的運(yùn)轉(zhuǎn)。

RBAC模型中,一個(gè)用戶可以有多個(gè)角色,一個(gè)角色可以有多個(gè)權(quán)限,通過將角色和權(quán)限分離開來提高設(shè)計(jì)的可擴(kuò)展性,通常一個(gè)用戶有多個(gè)角色,一個(gè)角色也會(huì)屬于多個(gè)用戶(多對(duì)多),一個(gè)角色有多個(gè)權(quán)限,一個(gè)權(quán)限也會(huì)屬于多個(gè)角色(多對(duì)多)。

如下圖所示:

用戶權(quán)限系統(tǒng)設(shè)計(jì)與RBAC模型

用戶和角色、權(quán)限之間,是松散的一對(duì)一、一對(duì)多甚至多對(duì)對(duì)的關(guān)系,而且這個(gè)關(guān)系是物理結(jié)構(gòu)上的上下層級(jí)關(guān)系,帶來的好處就是降低平臺(tái)的耦合性,極大的提高了系統(tǒng)的可操作性和易維護(hù)性,數(shù)據(jù)的安全性也非常具有保障,極大的降低了管理的開銷。

回到上文我們?cè)O(shè)計(jì)的用戶角色,不管是坐席,門店還是工程師,都可以依據(jù)其業(yè)務(wù)范圍和標(biāo)簽屬性,就可以輕松的實(shí)現(xiàn)對(duì)權(quán)限的指派和回收。

RBAC認(rèn)為,權(quán)限授權(quán)實(shí)際上是Who、What、How的問題。who、what、how構(gòu)成了訪問權(quán)限三元組,權(quán)限的管理用一句話來表達(dá)就是:Who (用戶) 對(duì) What (資源) 進(jìn)行 How (行為)的操作 。

Who:權(quán)限的擁用者或主體,也就是用戶實(shí)體。

What:權(quán)限針對(duì)的對(duì)象或資源,可以直接理解為產(chǎn)品界面上的菜單、按鈕等

How:具體的權(quán)限,查看、操作資源和數(shù)據(jù)的具體操作。

這個(gè)過程可以分解為兩個(gè)步驟:

用戶權(quán)限系統(tǒng)設(shè)計(jì)與RBAC模型

我們只需要通過給角色授權(quán),分配每個(gè)角色可以查看、操作的功能和數(shù)據(jù)范圍,然后將附有權(quán)利的角色施加到某個(gè)用戶賬號(hào),就使得該用戶獲取了相應(yīng)系統(tǒng)權(quán)限了。

通過“角色”這一層抽象的中間身份,整個(gè)系統(tǒng)就變得更為靈活:角色的權(quán)限可以隨時(shí)調(diào)整或者被系統(tǒng)回收,每個(gè)用戶賬號(hào)的操作權(quán)限可以隨業(yè)務(wù)場(chǎng)景的不同而發(fā)生改變。

比如,一個(gè)工程師登錄工程師的界面,則擁有工程師的權(quán)限,登錄到門店系統(tǒng),則擁有該門店授權(quán)的操作范圍。

下圖即為一個(gè)完整的用戶授權(quán)實(shí)例:

用戶權(quán)限系統(tǒng)設(shè)計(jì)與RBAC模型

這種設(shè)計(jì)下,任意一個(gè)賬號(hào),都可以根據(jù)實(shí)際業(yè)務(wù)需要,隨時(shí)調(diào)整權(quán)限范圍,對(duì)大型平臺(tái)產(chǎn)品而言,這種靈活性非常重要(RBAC模型還可以進(jìn)一步擴(kuò)展,比如用戶組、角色互斥等)。

從上圖,我們也可以發(fā)現(xiàn)權(quán)限管理必須具備的兩項(xiàng)基本原則:

1、職責(zé)分離:不同的角色完成不同的業(yè)務(wù)分工,通過分配不同的角色實(shí)現(xiàn)責(zé)任的互相約束實(shí)現(xiàn)對(duì)組織業(yè)務(wù)和數(shù)據(jù)的安全管理

2、最小特權(quán):系統(tǒng)可以限制分配給角色的權(quán)限多數(shù)、大小,為任意賬號(hào)分配權(quán)限,只要不超過該用戶完成任務(wù)的基本需要即可

也正是因?yàn)镽BAC的特性,我們?cè)谧霎a(chǎn)品設(shè)計(jì)時(shí),更應(yīng)該把精力集中于“用戶實(shí)體”的實(shí)際業(yè)務(wù)流轉(zhuǎn)過程,關(guān)注其行為背后的動(dòng)機(jī)和邏輯,才能夠設(shè)計(jì)一個(gè)高效的后臺(tái)系統(tǒng)。

但,RBAC有一個(gè)“缺陷”——沒有提供操作順序控制機(jī)制,無法進(jìn)行嚴(yán)格的操作次序控制,沒有辦法要求用戶先做什么,后做什么,必須借助外部機(jī)制來進(jìn)行控制。

當(dāng)然,對(duì)于權(quán)限管理而言,既要充分考慮到系統(tǒng)的靈活性,也要考慮實(shí)際的應(yīng)用程度和研發(fā)成本的投入,越是靈活的系統(tǒng),也就必然帶來更多的成本投入,其結(jié)果是帶來管理開銷的節(jié)約。

所有優(yōu)秀的設(shè)計(jì),都基于對(duì)業(yè)務(wù)、規(guī)則的深刻理解。

越早進(jìn)行系統(tǒng)的考慮,成本越低,效果也越好。

作者:?杜松2021

首席增長(zhǎng)官CGO薦讀:

更多精彩,關(guān)注:增長(zhǎng)黑客(GrowthHK.cn)

增長(zhǎng)黑客(Growth Hacker)是依靠技術(shù)和數(shù)據(jù)來達(dá)成各種營(yíng)銷目標(biāo)的新型團(tuán)隊(duì)角色。從單線思維者時(shí)常忽略的角度和高度,梳理整合產(chǎn)品發(fā)展的因素,實(shí)現(xiàn)低成本甚至零成本帶來的有效增長(zhǎng)…

本文經(jīng)授權(quán)發(fā)布,不代表增長(zhǎng)黑客立場(chǎng),如若轉(zhuǎn)載,請(qǐng)注明出處:http://m.gptmaths.com/quan/15781.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
上一篇 2018-12-28 12:10
下一篇 2018-12-28 12:27

發(fā)表回復(fù)

登錄后才能評(píng)論