產(chǎn)品設(shè)計--角色權(quán)限

角色權(quán)限是隱藏在一款產(chǎn)品背后的重要功能,每一個產(chǎn)品都需要角色權(quán)限的,尤其體現(xiàn)在企業(yè)管理、帶有流程審批的2B系統(tǒng)中,角色權(quán)限的使用則更加頻繁。

我i們先從普通用戶和系統(tǒng)管理員兩個角度來看一看,他們對角色權(quán)限已有的認知和訴求都有什么。

普通用戶既有的認知:

????知道自己有哪些權(quán)限【權(quán)限清單】

????我沒有這個權(quán)限,去找管理員開通

????知道自己所在的部門,公司各部門下有哪些同事【組織架構(gòu)】

????我知道前兩天的請假審批流程,今天上午11點,已經(jīng)走到二領(lǐng)導(dǎo)了【流程審批】

再看看管理員的認知:

希望系統(tǒng)初始化時就和我公司的業(yè)務(wù)相匹配了,減少工作量。

剩余20%個性化角色權(quán)限,提供自定義功能。

公司部門多,我需要每個部門都有自己的幫手,也就是子管理員。

所以,總結(jié)看來,角色權(quán)限的流程其實很簡單清晰。


簡單來講,角色權(quán)限是將角色、權(quán)限、用戶和組織架構(gòu),進行歸屬和關(guān)聯(lián)的邏輯過程。

現(xiàn)以釘釘?shù)慕巧珯?quán)限管理為例,提供幾張頁面邏輯圖。

權(quán)限清單
角色管理


組織架構(gòu)和用戶

從用戶的角度簡單的了解了角色權(quán)限,我們再來詳細的講講業(yè)內(nèi)標(biāo)準的RBAC模型。

一、RBAC模型是什么?

RBAC是一套成熟的權(quán)限模型。在傳統(tǒng)權(quán)限模型中,我們直接把權(quán)限賦予用戶。而在RBAC中,增加了“角色”的概念,我們首先把權(quán)限賦予角色,再把角色賦予用戶。這樣,由于增加了角色,授權(quán)會更加靈活方便。在RBAC中,根據(jù)權(quán)限的復(fù)雜程度,又可分為RBAC0、RBAC1、RBAC2、RBAC3。其中,RBAC0是基礎(chǔ),RBAC1、RBAC2、RBAC3都是以RBAC0為基礎(chǔ)的升級。我們可以根據(jù)自家產(chǎn)品權(quán)限的復(fù)雜程度,選取適合的權(quán)限模型。

二、基本模型RBAC0

解析:

RBAC0是基礎(chǔ),很多產(chǎn)品只需基于RBAC0就可以搭建權(quán)限模型了。在這個模型中,我們把權(quán)限賦予角色,再把角色賦予用戶。用戶和角色,角色和權(quán)限都是多對多的關(guān)系。用戶擁有的權(quán)限等于他所有的角色持有權(quán)限之和。

舉例:

譬如我們做一款企業(yè)管理產(chǎn)品,如果按傳統(tǒng)權(quán)限模型,給每一個用戶賦予權(quán)限則會非常麻煩,并且做不到批量修改用戶權(quán)限。這時候,可以抽象出幾個角色,譬如銷售經(jīng)理、財務(wù)經(jīng)理、市場經(jīng)理等,然后把權(quán)限分配給這些角色,再把角色賦予用戶。這樣無論是分配權(quán)限還是以后的修改權(quán)限,只需要修改用戶和角色的關(guān)系,或角色和權(quán)限的關(guān)系即可,更加靈活方便。此外,如果一個用戶有多個角色,譬如王先生既負責(zé)銷售部也負責(zé)市場部,那么可以給王先生賦予兩個角色,即銷售經(jīng)理+市場經(jīng)理,這樣他就擁有這兩個角色的所有權(quán)限。

三、角色分層模型RBAC1

解析:

RBAC1建立在RBAC0基礎(chǔ)之上,在角色中引入了繼承的概念。簡單理解就是,給角色可以分成幾個等級,每個等級權(quán)限不同,從而實現(xiàn)更細粒度的權(quán)限管理。

舉例:

基于之前RBAC0的例子,我們又發(fā)現(xiàn)一個公司的銷售經(jīng)理可能是分幾個等級的,譬如除了銷售經(jīng)理,還有銷售副經(jīng)理,而銷售副經(jīng)理只有銷售經(jīng)理的部分權(quán)限。這時候,我們就可以采用RBAC1的分級模型,把銷售經(jīng)理這個角色分成多個等級,給銷售副經(jīng)理賦予較低的等級即可。

四、角色限制模型RBAC2

解析:

RBAC2同樣建立在RBAC0基礎(chǔ)之上,僅是對用戶、角色和權(quán)限三者之間增加了一些限制。這些限制可以分成兩類,即靜態(tài)職責(zé)分離SSD(Static Separation of Duty)和動態(tài)職責(zé)分離DSD(Dynamic Separation of Duty)。具體限制如下圖:

舉例:

還是基于之前RBAC0的例子,我們又發(fā)現(xiàn)有些角色之間是需要互斥的,譬如給一個用戶分配了銷售經(jīng)理的角色,就不能給他再賦予財務(wù)經(jīng)理的角色了,否則他即可以錄入合同又能自己審核合同;再譬如,有些公司對角色的升級十分看重,一個銷售員要想升級到銷售經(jīng)理,必須先升級到銷售主管,這時候就要采用先決條件限制了。

五、統(tǒng)一模型RBAC3

解析:

RBAC3是RBAC1和RBAC2的合集,所以RBAC3既有角色分層,也包括可以增加各種限制。

六、基于RBAC的延展——用戶組

解析:

基于RBAC模型,還可以適當(dāng)延展,使其更適合我們的產(chǎn)品。譬如增加用戶組概念,直接給用戶組分配角色,再把用戶加入用戶組。這樣用戶除了擁有自身的權(quán)限外,還擁有了所屬用戶組的所有權(quán)限。

舉例:

譬如,我們可以把一個部門看成一個用戶組,如銷售部,財務(wù)部,再給這個部門直接賦予角色,使部門擁有部門權(quán)限,這樣這個部門的所有用戶都有了部門權(quán)限。用戶組概念可以更方便的給群體用戶授權(quán),且不影響用戶本來就擁有的角色權(quán)限。

七、補充一下RBAC中沒有說到:組織架構(gòu)

在企業(yè)中,一般是有組織架構(gòu)的。用戶的邏輯展現(xiàn)形式就是基于組織架構(gòu)呈現(xiàn)的,如果隱藏掉組織架構(gòu),用戶就按照拼音/入職時間等排序方式一字排開了。

一個用戶是可以屬于多個部門,那么就擁有多部門權(quán)限的集合了。

部門的主管人員,是與該部門平級的,換句話說,部門主管就代表著這個部門。


感謝閱讀,歡迎討論。



參考:

①釘釘

②http://api.woshipm.com/pd/440765.html?sf=mobile/woshipm/440765?mobid=sCZH&from=singlemessage&isappinstalled=1

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容