復(fù)盤 | B端產(chǎn)品中,如何構(gòu)建權(quán)限體系?

14 評(píng)論 18094 瀏覽 208 收藏 9 分鐘

不管是C端還是B端產(chǎn)品,“權(quán)限體系”幾乎存在于所有產(chǎn)品中。那么在B端,如何構(gòu)建一套“權(quán)限體系”以滿足業(yè)務(wù)需求?以下,筆者將詳細(xì)講述。

前段時(shí)間,筆者在一款B端數(shù)據(jù)產(chǎn)品中,基于RBAC模型構(gòu)建了一套重用性極佳的“權(quán)限體系”,上線后得到一致好評(píng)。不僅降低了運(yùn)維成本,更是對(duì)產(chǎn)品的傳播擴(kuò)散有極大的催化作用,并且這套“權(quán)限體系”被借鑒應(yīng)用在內(nèi)部數(shù)個(gè)項(xiàng)目當(dāng)中。

一、什么是“權(quán)限體系”

在C端,一般會(huì)通過會(huì)員類型(等級(jí))來區(qū)分不同的用戶權(quán)限。

例如:在“蘇寧易購”,如果你是Super會(huì)員,那么就會(huì)得到2%的返利、運(yùn)費(fèi)券、PP體育會(huì)員等普通用戶無法享受的權(quán)益,這就是通過會(huì)員體系(V1、V2、V3、V4、Super)構(gòu)建了一套權(quán)限體系。

與C端不同,B端產(chǎn)品的“權(quán)限體系”一般不采用會(huì)員類型(等級(jí))的概念來構(gòu)建,而是使用“普通用戶、管理員”這種角色概念。

這就是RBAC模型:基于角色的權(quán)限訪問控制(Role-Based Access Control)。

RBAC的特點(diǎn)就是:通過創(chuàng)建不同的角色(每種角色關(guān)聯(lián)不同的權(quán)限),通過賦予用戶不同的角色,從而使得用戶獲得對(duì)應(yīng)角色的權(quán)限,建立用戶和權(quán)限的關(guān)聯(lián)。

這種模型的優(yōu)點(diǎn)就是:可以通過動(dòng)態(tài)調(diào)整角色的權(quán)限,便捷地對(duì)用戶進(jìn)行批量的權(quán)限變更、遷移、回收。

二、構(gòu)建“權(quán)限體系”的目的

有“數(shù)據(jù)”的地方就有江湖。

作為互聯(lián)網(wǎng)企業(yè)中的核心資產(chǎn),“數(shù)據(jù)”經(jīng)過采集、清洗、存儲(chǔ),就是為了最終孵化出經(jīng)營性的數(shù)據(jù)產(chǎn)品,為業(yè)務(wù)的發(fā)展提供引擎。

筆者本次參與的是就是一款B端的數(shù)據(jù)產(chǎn)品,用戶群體是內(nèi)部的員工。根據(jù)員工在公司內(nèi)部的身份,區(qū)分出查看對(duì)應(yīng)數(shù)據(jù)的權(quán)限,也就是哪些數(shù)據(jù)能看、哪些數(shù)據(jù)不能看。

因此,構(gòu)建“權(quán)限體系”的目的主要有:

  1. 隨著商業(yè)競(jìng)爭(zhēng)的升級(jí),要避免給無關(guān)的員工有使用本數(shù)據(jù)產(chǎn)品的權(quán)限,防止數(shù)據(jù)泄漏;
  2. 雖然對(duì)員工有保密意識(shí)培訓(xùn),但需防患于未然,盡量保持每個(gè)員工的最小權(quán)限,讓權(quán)限與工作職責(zé)掛鉤;
  3. 作為平臺(tái)性的數(shù)據(jù)產(chǎn)品,需要把一部分權(quán)限下放,以保證用戶能參與產(chǎn)品的內(nèi)容建設(shè)、運(yùn)維及傳播。

三、建立“權(quán)限體系”模型

根據(jù)RBAC模型,將權(quán)限體系的建模對(duì)象分為三種:用戶、角色、權(quán)限。

一般的產(chǎn)品針對(duì)以上三種對(duì)象進(jìn)行建模也就可以了,但如果是平臺(tái)性的數(shù)據(jù)產(chǎn)品,還需要在“用戶”和“角色”之間引入一個(gè)對(duì)象:數(shù)據(jù)集合。

“數(shù)據(jù)集合”就是將數(shù)據(jù)根據(jù)一定規(guī)律劃分成若干個(gè)集合,同種規(guī)則下每個(gè)數(shù)據(jù)集合之間相互獨(dú)立。引入“數(shù)據(jù)集合”的好處在于:

  1. 用戶在一個(gè)“數(shù)據(jù)集合”中選擇一種“角色”,那么在不同“數(shù)據(jù)集合”中就可以擁有不同的角色,同時(shí)用戶所擁有這個(gè)“角色”的權(quán)限也被圈定在特定的“數(shù)據(jù)集合”內(nèi);
  2. 權(quán)限體系的本質(zhì)是對(duì)用戶身份做控制,引入“數(shù)據(jù)集合”后就可以將數(shù)據(jù)來源也作為一種對(duì)象進(jìn)行控制,在管理層面更加細(xì)致、靈活;

用戶:每個(gè)員工就是一名用戶,可以與工號(hào)進(jìn)行掛鉤,從而建立最小粒度的“用戶”對(duì)象,并且可以確保具有唯一性。

數(shù)據(jù)集合:本次B端數(shù)據(jù)產(chǎn)品作為一個(gè)平臺(tái),每個(gè)接入的產(chǎn)品(例如:蘇寧易購、蘇寧金融等等)就是“數(shù)據(jù)集合”。由于每個(gè)產(chǎn)品互相獨(dú)立,因此可以按照產(chǎn)品進(jìn)行數(shù)據(jù)集合的劃分,即一個(gè)產(chǎn)品就是一個(gè)數(shù)據(jù)集合。

角色:根據(jù)對(duì)用群體調(diào)研和產(chǎn)品目前所處的階段,設(shè)定了四種角色:普通用戶、產(chǎn)品管理員、平臺(tái)管理員、超級(jí)管理員。

權(quán)限:根據(jù)MECE分析法(Mutually Exclusive Collectively Exhaustive),將權(quán)限劃分為“相互獨(dú)立”的元素,這些權(quán)限元素可以按照角色的劃分組成不同的集合,這些集合就是對(duì)應(yīng)角色的權(quán)限。

Q:如何將權(quán)限劃分成“相互獨(dú)立”的元素?

A:首先將產(chǎn)品內(nèi)每個(gè)功能模塊都一一列舉出來,然后針對(duì)每個(gè)功能模塊分為三種權(quán)限:可讀、不可讀、可寫。如果需要繼續(xù)細(xì)化,針對(duì)“可寫”又可細(xì)分為“增、刪、改、查”四種。

可以制作一個(gè)Excel表格,角色、功能分別是其中的X、Y軸。針對(duì)每個(gè)功能,將每個(gè)角色擁有的權(quán)限進(jìn)行標(biāo)記,這樣就可以形成一份清晰的“角色-權(quán)限”對(duì)照表。

四、總結(jié)

筆者所構(gòu)建的權(quán)限體系是在RBAC模型的基礎(chǔ)上引入“數(shù)據(jù)集合”作為用戶和角色之間的對(duì)象,因此可以將其定義為:基于數(shù)據(jù)集合及角色的權(quán)限訪問控制模型。

相比于RBAC,該模型的優(yōu)勢(shì)在于:能夠讓同一用戶在多場(chǎng)景中無感知的切換角色。

原因如下:

  1. 一個(gè)“數(shù)據(jù)集合”就是一個(gè)場(chǎng)景,多個(gè)“數(shù)據(jù)集合”就是多個(gè)場(chǎng)景;
  2. 在單一場(chǎng)景下用戶的角色是固定、唯一的,但在多場(chǎng)景下用戶的角色會(huì)隨著場(chǎng)景的變化而變化;
  3. 在“用戶”和“角色”之間引入“數(shù)據(jù)集合”,就是為了將用戶的角色與場(chǎng)景進(jìn)行綁定,這樣在多場(chǎng)景環(huán)境中用戶的角色就會(huì)隨著場(chǎng)景變化而自動(dòng)切換,用戶能更為通暢的使用產(chǎn)品。

 

作者:胡欣欣,公眾號(hào):吹拉彈唱大師(ID:cltcds)

本文由@吹拉彈唱大師 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來自Unsplash, 基于CC0協(xié)議

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 岳不群和金庸沒看懂,他們沒有對(duì)應(yīng)的數(shù)據(jù)集合么?

    來自上海 回復(fù)
    1. 這個(gè)意思應(yīng)該是這倆角色的數(shù)據(jù)集合是全部,最大

      回復(fù)
  2. 那我是不是可以理解我,如果我被賦予了某個(gè)“數(shù)據(jù)集合”的權(quán)限,那么對(duì)應(yīng)數(shù)據(jù)集合下的“角色”和“權(quán)限”我都有了,并且我可以不用進(jìn)行角色的切換?

    來自廣東 回復(fù)
    1. 應(yīng)該是a數(shù)據(jù)集合的b角色,那么a數(shù)據(jù)集合中b角色以下的權(quán)限都有了,好像說了個(gè)寂寞??

      回復(fù)
  3. 請(qǐng)教一下,組織機(jī)構(gòu)是否可以理解為數(shù)據(jù)集合

    來自廣東 回復(fù)
    1. 不可以吧,這個(gè)是用戶自身的標(biāo)簽

      來自江蘇 回復(fù)
    2. 我理解是可以的,相當(dāng)于一個(gè)虛擬的組織架構(gòu),每一個(gè)虛擬的組織架構(gòu)都代表一個(gè)數(shù)據(jù)集合,對(duì)應(yīng)的角色關(guān)聯(lián)了這個(gè)組織架構(gòu)就類似這個(gè)角色(實(shí)際為角色下的功能權(quán)限)賦予了這個(gè)組織架構(gòu)下的所有數(shù)據(jù)權(quán)限

      來自上海 回復(fù)
    3. 理論上是可以的,組織機(jī)構(gòu)也是一種場(chǎng)景,管理的人員的范圍,完全是可以作為數(shù)據(jù)集合理解

      回復(fù)
  4. 針對(duì)“可寫”又可細(xì)分為“增、刪、改、查”四種。

    “查”算是可寫嗎?一直因?yàn)椴槭强勺x。

    回復(fù)
    1. 你的理解沒問題,在真實(shí)場(chǎng)景內(nèi),查這個(gè)功能也可以算作是“可讀”。我這里只是籠統(tǒng)的將操作類功能都?xì)w為“可寫”。

      回復(fù)
  5. 可讀和不可讀應(yīng)該是2選1吧,要么可讀,要么不可讀,不能兩項(xiàng)都不選吧?

    來自北京 回復(fù)
    1. 還有第三種“可寫”,里面包括了可讀。

      回復(fù)
  6. 用戶:角色組-角色,權(quán)限組-權(quán)限,用戶組-用戶(產(chǎn)品組-產(chǎn)品),笛卡爾積模型

    來自上海 回復(fù)
    1. 可以映射過去

      來自江蘇 回復(fù)