(網經社訊)不管是C端還是B端產品,“權限體系”幾乎存在于所有產品中。那么在B端,如何構建一套“權限體系”以滿足業(yè)務需求?以下,筆者將詳細講述。
前段時間,筆者在一款B端數(shù)據(jù)產品中,基于RBAC模型構建了一套重用性極佳的“權限體系”,上線后得到一致好評。不僅降低了運維成本,更是對產品的傳播擴散有極大的催化作用,并且這套“權限體系”被借鑒應用在內部數(shù)個項目當中。
一、什么是“權限體系”
在C端,一般會通過會員類型(等級)來區(qū)分不同的用戶權限。
例如:在“蘇寧易購”,如果你是Super會員,那么就會得到2%的返利、運費券、PP體育會員等普通用戶無法享受的權益,這就是通過會員體系(V1、V2、V3、V4、Super)構建了一套權限體系。
與C端不同,B端產品的“權限體系”一般不采用會員類型(等級)的概念來構建,而是使用“普通用戶、管理員”這種角色概念。
這就是RBAC模型:基于角色的權限訪問控制(Role-Based Access Control)。
RBAC的特點就是:通過創(chuàng)建不同的角色(每種角色關聯(lián)不同的權限),通過賦予用戶不同的角色,從而使得用戶獲得對應角色的權限,建立用戶和權限的關聯(lián)。
這種模型的優(yōu)點就是:可以通過動態(tài)調整角色的權限,便捷地對用戶進行批量的權限變更、遷移、回收。
二、構建“權限體系”的目的
有“數(shù)據(jù)”的地方就有江湖。
作為互聯(lián)網企業(yè)中的核心資產,“數(shù)據(jù)”經過采集、清洗、存儲,就是為了最終孵化出經營性的數(shù)據(jù)產品,為業(yè)務的發(fā)展提供引擎。
筆者本次參與的是就是一款B端的數(shù)據(jù)產品,用戶群體是內部的員工。根據(jù)員工在公司內部的身份,區(qū)分出查看對應數(shù)據(jù)的權限,也就是哪些數(shù)據(jù)能看、哪些數(shù)據(jù)不能看。
因此,構建“權限體系”的目的主要有:
隨著商業(yè)競爭的升級,要避免給無關的員工有使用本數(shù)據(jù)產品的權限,防止數(shù)據(jù)泄漏;
雖然對員工有保密意識培訓,但需防患于未然,盡量保持每個員工的最小權限,讓權限與工作職責掛鉤;
作為平臺性的數(shù)據(jù)產品,需要把一部分權限下放,以保證用戶能參與產品的內容建設、運維及傳播。
三、建立“權限體系”模型
根據(jù)RBAC模型,將權限體系的建模對象分為三種:用戶、角色、權限。
一般的產品針對以上三種對象進行建模也就可以了,但如果是平臺性的數(shù)據(jù)產品,還需要在“用戶”和“角色”之間引入一個對象:數(shù)據(jù)集合。
“數(shù)據(jù)集合”就是將數(shù)據(jù)根據(jù)一定規(guī)律劃分成若干個集合,同種規(guī)則下每個數(shù)據(jù)集合之間相互獨立。引入“數(shù)據(jù)集合”的好處在于:
用戶在一個“數(shù)據(jù)集合”中選擇一種“角色”,那么在不同“數(shù)據(jù)集合”中就可以擁有不同的角色,同時用戶所擁有這個“角色”的權限也被圈定在特定的“數(shù)據(jù)集合”內;
權限體系的本質是對用戶身份做控制,引入“數(shù)據(jù)集合”后就可以將數(shù)據(jù)來源也作為一種對象進行控制,在管理層面更加細致、靈活;
用戶:每個員工就是一名用戶,可以與工號進行掛鉤,從而建立最小粒度的“用戶”對象,并且可以確保具有唯一性。
數(shù)據(jù)集合:本次B端數(shù)據(jù)產品作為一個平臺,每個接入的產品(例如:蘇寧易購、蘇寧金融等等)就是“數(shù)據(jù)集合”。由于每個產品互相獨立,因此可以按照產品進行數(shù)據(jù)集合的劃分,即一個產品就是一個數(shù)據(jù)集合。
角色:根據(jù)對用群體調研和產品目前所處的階段,設定了四種角色:普通用戶、產品管理員、平臺管理員、超級管理員。
權限:根據(jù)MECE分析法(Mutually Exclusive Collectively Exhaustive),將權限劃分為“相互獨立”的元素,這些權限元素可以按照角色的劃分組成不同的集合,這些集合就是對應角色的權限。
Q:如何將權限劃分成“相互獨立”的元素?
A:首先將產品內每個功能模塊都一一列舉出來,然后針對每個功能模塊分為三種權限:可讀、不可讀、可寫。如果需要繼續(xù)細化,針對“可寫”又可細分為“增、刪、改、查”四種。
可以制作一個Excel表格,角色、功能分別是其中的X、Y軸。針對每個功能,將每個角色擁有的權限進行標記,這樣就可以形成一份清晰的“角色-權限”對照表。
四、總結
筆者所構建的權限體系是在RBAC模型的基礎上引入“數(shù)據(jù)集合”作為用戶和角色之間的對象,因此可以將其定義為:基于數(shù)據(jù)集合及角色的權限訪問控制模型。
相比于RBAC,該模型的優(yōu)勢在于:能夠讓同一用戶在多場景中無感知的切換角色。
原因如下:
一個“數(shù)據(jù)集合”就是一個場景,多個“數(shù)據(jù)集合”就是多個場景;
在單一場景下用戶的角色是固定、唯一的,但在多場景下用戶的角色會隨著場景的變化而變化;
在“用戶”和“角色”之間引入“數(shù)據(jù)集合”,就是為了將用戶的角色與場景進行綁定,這樣在多場景環(huán)境中用戶的角色就會隨著場景變化而自動切換,用戶能更為通暢的使用產品。
(來源:吹拉彈唱大師 文/胡欣欣 編選:網經社-電子商務研究中心)