RBAC權(quán)限管理模型(摘抄)

我們在做任何一款產(chǎn)品的時候,或多或少都會涉及到用戶和權(quán)限的問題畏陕。譬如配乓,做企業(yè)類軟件,不同部門、不同職位的人的權(quán)限是不同的犹芹;做論壇類產(chǎn)品的時候崎页,版主和訪客權(quán)限也是不一樣的;再例如一款產(chǎn)品的收費用戶和免費用戶權(quán)限也是迥然不同的腰埂。

但在設(shè)計產(chǎn)品的用戶和權(quán)限的關(guān)系的時候飒焦,很多產(chǎn)品經(jīng)理可能按照感覺來,在并不清楚用戶和權(quán)限是否存在優(yōu)秀的理論模型的時候屿笼,就按照自我推理搭建了產(chǎn)品的用戶和權(quán)限模型牺荠。而這種基于感覺和推理的模型肯定是有諸多問題的,譬如寫死了關(guān)系導(dǎo)致權(quán)限不夠靈活驴一、考慮不周導(dǎo)致權(quán)限覆蓋能力弱等等休雌。

正如牛頓所言,站在巨人的肩膀上才能看的更遠肝断。我們不妨去參照已有的比較成熟的權(quán)限模型杈曲,如:RBAC(Role-Based Access Control)——基于角色的訪問控制。我搜集了網(wǎng)上很多關(guān)于RBAC的資料胸懈,大多與如何用數(shù)據(jù)表實現(xiàn)RBCA相關(guān)担扑,并不容易理解。所以趣钱,我會以產(chǎn)品經(jīng)理的角度去解析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)系即可喻旷,更加靈活方便生逸。此外,如果一個用戶有多個角色且预,譬如王先生既負責銷售部也負責市場部槽袄,那么可以給王先生賦予兩個角色,即銷售經(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)職責分離SSD(Static Separation of Duty)和動態(tài)職責分離DSD(Dynamic Separation of Duty)铸豁。具體限制如下圖:

舉例:

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

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

解析:

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

舉例:

這個就不舉例了靡馁,統(tǒng)一模型RBAC3可以解決上面三個例子的所有問題欲鹏。當然机久,只有在系統(tǒng)對權(quán)限要求非常復(fù)雜時,才考慮使用此權(quán)限模型赔嚎。

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

解析:

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

舉例:

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

七沛慢、最后的話

無論是本次的權(quán)限模型赡若,還是其他產(chǎn)品相關(guān)實現(xiàn)方案,很多都已經(jīng)被前人所總結(jié)提煉团甲,我們應(yīng)深度掌握這些成熟的知識和經(jīng)驗斩熊,而不是絞盡腦汁自我推理。還是文章開頭那句話伐庭,站在巨人的肩膀上我們可以看得更遠粉渠,而不是再造一個輪子。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末圾另,一起剝皮案震驚了整個濱河市霸株,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌集乔,老刑警劉巖去件,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異扰路,居然都是意外死亡尤溜,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門汗唱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宫莱,“玉大人,你說我怎么就攤上這事哩罪∈诎裕” “怎么了巡验?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長碘耳。 經(jīng)常有香客問我显设,道長,這世上最難降的妖魔是什么辛辨? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任捕捂,我火速辦了婚禮,結(jié)果婚禮上斗搞,老公的妹妹穿的比我還像新娘绞蹦。我一直安慰自己,他們只是感情好榜旦,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布幽七。 她就那樣靜靜地躺著,像睡著了一般溅呢。 火紅的嫁衣襯著肌膚如雪澡屡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天咐旧,我揣著相機與錄音驶鹉,去河邊找鬼。 笑死铣墨,一個胖子當著我的面吹牛室埋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播伊约,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼姚淆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了屡律?” 一聲冷哼從身側(cè)響起腌逢,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎超埋,沒想到半個月后搏讶,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡霍殴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年媒惕,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片来庭。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡妒蔚,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情面睛,我是刑警寧澤絮蒿,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布尊搬,位于F島的核電站叁鉴,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏佛寿。R本人自食惡果不足惜幌墓,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望冀泻。 院中可真熱鬧常侣,春花似錦、人聲如沸弹渔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽肢专。三九已至舞肆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間博杖,已是汗流浹背椿胯。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留剃根,地道東北人哩盲。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像狈醉,于是被迫代替她去往敵國和親廉油。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容