最近在做一個業(yè)務(wù)管理系統(tǒng)CRM,期間也是激發(fā)了不少思考和沉淀。B端系統(tǒng)的底層基礎(chǔ)模塊之一是權(quán)限管理滤灯,而RBAC作為目前使用最為廣泛的權(quán)限模型,我認為有必要單獨研究整理一番曼玩。本文將從RBAC的定義鳞骤、RBAC組成、3個安全原則黍判、4種模型和RBAC基礎(chǔ)產(chǎn)品功能模塊進行介紹豫尽。
一、什么是RBAC
RBAC顷帖,基于角色的權(quán)限訪問控制(Role-Based Access Control)美旧。RBAC通過定義角色的權(quán)限渤滞,并對用戶授予某個角色從而來控制用戶的權(quán)限,實現(xiàn)了用戶和權(quán)限的邏輯分離榴嗅。通過對用戶設(shè)置角色妄呕,對角色設(shè)置權(quán)限范圍從而使得不同用戶擁有不同角色對應(yīng)的權(quán)限。這樣的權(quán)限設(shè)置十分清楚嗽测,也極大地簡化了權(quán)限的管理趴腋,管理起來十分方便。
二论咏、RBAC組成
在RBAC模型里面优炬,有3個基礎(chǔ)組成部分,分別是:用戶厅贪、角色和權(quán)限蠢护。本質(zhì)上是用戶與角色的映射、角色與權(quán)限的映射养涮。
名詞解釋:
User(用戶):每個用戶都有唯一的UID識別葵硕,并被授予不同的角色
Role(角色):不同角色具有不同的權(quán)限范圍
Permission(權(quán)限):訪問權(quán)限
用戶-角色映射:用戶和角色之間的映射關(guān)系
角色-權(quán)限映射:角色和權(quán)限之間的映射
三、RBAC的3個安全原則
?RBAC三個安全原則:最小權(quán)限原則贯吓、責(zé)任分離原則和數(shù)據(jù)抽象原則
最小權(quán)限原則:將角色配置成該角色完成某項任務(wù)所需要的最小權(quán)限集合懈凹。比如客服人員,所設(shè)置角色擁有的權(quán)限僅限于其能夠完成客服相關(guān)任務(wù)的權(quán)限范圍悄谐。
責(zé)任分離原則:通過設(shè)置相互獨立互斥的角色來共同完成敏感的任務(wù)介评。
數(shù)據(jù)抽象原則:通過權(quán)限的抽象來體現(xiàn)數(shù)據(jù)的抽象。比如財務(wù)人員操作借款爬舰、存款等抽象權(quán)限们陆,而不是使用操作系統(tǒng)提供的讀、寫情屹、執(zhí)行等具體的許可權(quán)坪仇。但RBAC不強制要求這原則,安全管理配置RBAC模型時可以允許不遵循該項原則垃你。因此椅文,支持?jǐn)?shù)據(jù)抽象原則的程度與實現(xiàn)細節(jié)相關(guān)。
四惜颇、RBAC的4種模型
(1)RBAC0
最基本的RBAC模型皆刺,也是BRAC的核心思想。即用戶和角色是多對多的關(guān)系官还。一個用戶可有多個角色芹橡,對應(yīng)多種權(quán)限毒坛。一個用戶至少有一個角色望伦。一個角色至少有一個權(quán)限林说。
例子:部門經(jīng)理可以同時是項目經(jīng)理和架構(gòu)師。
(2)RBAC1
在RBAC0的基礎(chǔ)上進行了角色分層屯伞,一個角色可以從另一個角色繼承許可權(quán)腿箩。
例子:在一個公司銷售部門中,分有區(qū)域經(jīng)理劣摇、城市經(jīng)理珠移、銷售人員。此時末融,我們可以運用RBAC1的分級模型钧惧,將銷售這個角色分為多個等級,賦予不同等級的不同權(quán)限勾习。
(3)RBAC2
增加了約束模型浓瞪,添加了部分限制。強調(diào)在RBAC的不同組件中在配置方面的一些限制巧婶。一般設(shè)置的限制我們有以下種類:
1乾颁、互斥角色限制:即字面意思,同一個用戶在不同互斥角色中艺栈,只能選擇其中一個英岭;
2、基數(shù)限制:一個用戶擁有的角色是有限制的湿右,一個角色擁有的權(quán)限也是有限的诅妹。
3、前置條件限制:一個用戶需要獲取更高一級的角色毅人,前提是已經(jīng)擁有低級角色漾唉。
4、動態(tài)限制用戶與角色:即一個 用戶可以擁有多個角色堰塌,但賬號運營時只能激活使用一個角色赵刑。
例子:一個公司的銷售經(jīng)理可以分配其銷售經(jīng)理的角色,但不能再分配合同審核的角色场刑。否則將會出現(xiàn)一種場景為銷售經(jīng)理創(chuàng)建合同般此,同時又自己審批了合同,這是不允許的牵现。
例子:在銷售人員-城市經(jīng)理-區(qū)域經(jīng)理的晉升路徑上铐懊,一個公司的銷售人員,要晉升為區(qū)域經(jīng)理瞎疼,首先要先成為城市經(jīng)理科乎。
(4)RBAC3
我們可以這么理解,RBAC3是基于RBAC0的基礎(chǔ)上贼急,RBAC1與RBAC2的集合統(tǒng)一茅茂,即RBAC3=RBAC2 + RBAC1捏萍,稱為統(tǒng)一模型。
五空闲、RBAC基礎(chǔ)產(chǎn)品模塊
在實際需求的產(chǎn)品功能設(shè)計中令杈,涉及的功能很多也很多樣,概括出來幾個模塊一定包括用戶管理碴倾、角色管理逗噩、權(quán)限管理三個模塊。每個模塊也包括增刪改查幾個部分跌榔。業(yè)務(wù)主流為:
1.創(chuàng)建權(quán)限
2.創(chuàng)建角色异雁,并關(guān)聯(lián)權(quán)限
3.添加用戶,并為用戶設(shè)置角色
六僧须、后記
文章的內(nèi)容主要從工作中實際遇到的場景中進行總結(jié)概括片迅,更多的是提煉其方法論精髓。后續(xù)有機會將結(jié)合理論與詳實的案例來和大家做更多的分享與交流皆辽。
AI-product柑蛇,產(chǎn)品人的聚集地?回復(fù)“區(qū)塊鏈”,獲取整理好的區(qū)塊鏈資料匯總驱闷。
回復(fù)“思維導(dǎo)圖”耻台,獲取100本書思維導(dǎo)圖。