2021-03-25 Day9

#產(chǎn)品小記 ?RBAC權(quán)限管理模型

對(duì)于B端產(chǎn)品,多數(shù)會(huì)遇見權(quán)限管理問題。比如,不同部門、不同職位的人權(quán)限是不同的。今天學(xué)習(xí)了一個(gè)RBAC權(quán)限管理模型,在設(shè)計(jì)產(chǎn)品的權(quán)限時(shí)可以方便套用。

RBAC(Role-Based Access Control)——是基于角色的訪問控制。這是一套成熟的權(quán)限模型。在RBAC中,增加了“角色”的概念,根據(jù)權(quán)限的復(fù)雜程度又分為RBAC0、RBAC1、RBAC2、RBAC3。其中,RBAC0是基礎(chǔ),RBAC1、RBAC2、RBAC3都是以RBAC0為基礎(chǔ)的升級(jí)。

1.RBAC0.?

這屬于基礎(chǔ)模型,在這個(gè)模型中,我們把權(quán)限賦予角色,再把角色賦予用戶。用戶和角色,角色和權(quán)限都是多對(duì)多的關(guān)系。用戶擁有的權(quán)限等于他所有的角色持有權(quán)限之和。

2.角色分層模型RBAC1。

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

3.角色限制模型RBAC2。

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

4.統(tǒng)一模型RBAC3。

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

5.基于RBAC的延展——用戶組。

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

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

做產(chǎn)品不需要重復(fù)造輪子,更多時(shí)候是成熟經(jīng)驗(yàn)的繼承。這就需要在平時(shí)多體驗(yàn)、多學(xué)習(xí),只有積累夠了,才能做到信手拈來(lái)。

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

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

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