参数化的RBAC模型
1 動機
基于角色的訪問控制(RBAC)模型被普遍認為是一種有效的訪問控制模型,它比傳統(tǒng)的自主訪問控制(DAC)和強制訪問控制(MAC)具有更高的靈活性和更好的擴展性。
在實際應(yīng)用中,隨著企業(yè)規(guī)模以及信息系統(tǒng)規(guī)模逐漸擴大,系統(tǒng)中角色的數(shù)目也隨之急劇增加,從而使得角色管理、用戶角色指派、權(quán)限角色指派的工作非常繁重且易于出錯。
很多角色具有類似的權(quán)限,也賦給了類似的用戶。
例如企業(yè)中不同分公司的經(jīng)理角色,它們都具有查看其所屬分公司的產(chǎn)品銷售報表的權(quán)限,這些角色也分別賦給了各個分公司的經(jīng)理。
對于這些角色,可以將影響角色的因素抽象成參數(shù),從而簡化角色管理、用戶角色指派、權(quán)限角色指派的工作。
?RBAC模型圖
?
2 參數(shù)化的RBAC模型
以為企業(yè)管理設(shè)計的訪問控制系統(tǒng)為例。
企業(yè)內(nèi)部存在諸多機構(gòu)層次,每個機構(gòu)層次都有一些部門,每個部門里一般都有一些固定的職務(wù)。
機構(gòu):總公司、分公司。
?????? 部門:家電部、彩電部。
?????? 職務(wù):經(jīng)理、開發(fā)人員、銷售人員、普通職員。
2.1 參數(shù)化的RBAC模型的直觀意義
??????? 機構(gòu)、部門和職務(wù)的偏序關(guān)系如下:
如果用RBAC基本模型,需要定義16個角色。
把機構(gòu)和部門定義為參數(shù)。
這樣用參數(shù)化的RBAC模型,則只需要定義4個角色,使得角色的管理很簡單。
用戶角色指派和權(quán)限角色指派是通過定義角色實例(Role Instance)來實現(xiàn)的。
一個角色實例是一個角色和一組實例化后的參數(shù)組成的有序組。例如:(經(jīng)理,{總公司},{彩電部})是一個角色實例。
2.3 P-RBAC管理模型P-ARBAC
?
參數(shù)化的RBAC模型中的參數(shù)管理??? ???????
參數(shù)化的RBAC模型中的角色管理 P-RRA?????
參數(shù)化的RBAC模型中的用戶角色指派 P-URA?????
參數(shù)化的RBAC模型中的權(quán)限角色指派 P-PRA?????
?
2.3.1? 參數(shù)的選擇
?????? 根據(jù)實際應(yīng)用中的經(jīng)驗,我們給出了2條參數(shù)的選擇條件作為參考。
1.參數(shù)與用戶和權(quán)限有某種聯(lián)系。
用戶角色指派和權(quán)限角色指派可以實現(xiàn)一定程度的自動化。
簡化用戶角色指派和權(quán)限角色指派工作,避免出錯。
?
2.參數(shù)的取值在含義上有明顯的層次關(guān)系,但不能有多重繼承。
使得參數(shù)集的偏序關(guān)系特殊化,簡化角色實例中的偏序關(guān)系的判斷。
參數(shù)值成樹形結(jié)構(gòu),便于存儲和查找。
?
?
2.3.2? 參數(shù)取值集合中偏序的管理
由于參數(shù)的選擇滿足上面的條件(2),所以可以通過參數(shù)取值的層次來表示偏序。
例如對于機構(gòu)這個參數(shù)的管理,我們可以用“/”表示總部,“/HBDQ/”表示華北大區(qū),“/HBDQ/BJFGS/”表示北京分公司,用“/”作為分隔符即可方便的表示偏序。
這種結(jié)構(gòu)也很適合在目錄服務(wù)器中存儲。
?
2.3.3? 參數(shù)的增加和刪除
增加參數(shù),就在原有參數(shù)模板的最后新加一個參數(shù)集,原有角色實例在這個參數(shù)上賦空集。
刪除參數(shù),在每個角色實例中刪除該參數(shù)對應(yīng)的參數(shù)值集合。
**由于在P-RBAC模型中角色和參數(shù)是松耦合的,所以在實現(xiàn)中,增加和刪除參數(shù)無需對原有角色實例作任何修改
參數(shù)的基數(shù)限制
?
2.3.4? 參數(shù)的靜態(tài)基數(shù)限制。
我們可以定義實例化角色時在該角色某個參數(shù)集上的基數(shù)限制。
可以實現(xiàn)“一個用戶不能在多個機構(gòu)中擔(dān)任會計”這類限制。
eg:我們可以定義角色“會計”在“機構(gòu)”這個參數(shù)上的靜態(tài)基數(shù)是1。這樣(會計,{北京,上海})將是一個非法的角色實例,不會被創(chuàng)建。
?
2.3.5? 參數(shù)的動態(tài)基數(shù)限制。
我們可以定義激活角色實例時在該角色某個參數(shù)集上的基數(shù)限制。
可以實現(xiàn)“允許一個用戶在多個機構(gòu)中擔(dān)任會計,但是在一次會話中只能激活其中的一個”這類限制。
?
P-RBAC模型中的角色管理 P-RRA
P-RBAC模型中的角色和RBAC基本模型中的角色沒有,可以采用RBAC基本管理模型進行管理,也可以采用各種對RBAC基本管理模型的擴展來進行擴展的角色管理。
P-RBAC中的用戶角色指派 P-URA
????????????? 在對用戶指派角色實例時,從用戶的信息中提取對應(yīng)于P-RBAC模型中參數(shù)的信息,并作為角色實例該參數(shù)的默認值。
?
????????????? 同時允許管理員進行手工修改,以實現(xiàn)細粒度的管理
P-RBAC中的權(quán)限角色指派 P-PRA
????????????? 由于權(quán)限和用戶的地位是對稱的,所以P-PRA實際上是P-URA的對偶模型,同樣可以利用參數(shù)和權(quán)限的聯(lián)系實現(xiàn)一定程度的自動化。
3 有關(guān)參數(shù)化的RBAC模型的討論
3.1? 簡化了角色管理工作。
通過引入?yún)?shù)模板,使得角色數(shù)目大大減小,從而使得角色管理的工作大大簡化。
?
在對TCL的角色統(tǒng)計中,角色數(shù)目由為引入?yún)?shù)模板前的近9000個角色減少為幾十個角色。
3.2? 減少用戶和權(quán)限擁有的角色實例數(shù)
?
假設(shè)有個用戶u同時是北京分公司和天津分公司的經(jīng)理,則沒有引入?yún)?shù)模板之前,需要指派給u兩個角色:北京經(jīng)理,天津經(jīng)理。在引入?yún)?shù)模板之后,則u只有一個角色實例:(經(jīng)理,{北京,天津})。這也簡化了判斷一個會話中用戶是否擁有權(quán)限的工作。
?
在TCL的權(quán)限記錄中一個頁面的訪問權(quán)限原來有1000多條記錄,但是引入?yún)?shù)模板后就簡化成了1條記錄。
3.3.? 角色實例是基于內(nèi)容的,方便管理員管理
?
????????????? 參數(shù)具有一定的含義,且有明顯的層次關(guān)系,所以角色實例是基于內(nèi)容(Content-Based)的。
????????????? 管理員在進行用戶角色實例指派和權(quán)限角色實例指派時可以充分利用參數(shù)的含義,方便管理,減少出錯。
?
?
3.4.? P-URA和P-PRA可以實現(xiàn)一定程度自動化
?
????????????? 由于參數(shù)和用戶及權(quán)限有一定的聯(lián)系,所以在進行用戶角色實例指派和權(quán)限角色實例指派時可以實現(xiàn)自動化,提供管理員默認的參數(shù)值,簡化管理員的管理工作。
5.具有良好的可擴展性
?
????????????? 由于我們在P-RBAC模型中定義了增加參數(shù)和刪除參數(shù)的操作,當企業(yè)業(yè)務(wù)發(fā)生變化或者管理員發(fā)現(xiàn)需要增加參數(shù)或者減少參數(shù)來簡化管理時,可以方便的實現(xiàn),而且不用修改原來的數(shù)據(jù)。從而提高了系統(tǒng)的適應(yīng)性和可擴展性。
局限和解決方案
1.參數(shù)的選擇需要仔細考慮,而且需要存儲和管理參數(shù)上的偏序
?
對于一個實際系統(tǒng),應(yīng)該根據(jù)前面提到的參數(shù)選擇的標準,根據(jù)實際需要來確定參數(shù)。一般來說,機構(gòu),部門等是合適的參數(shù)選擇。
局限和解決方案
2.角色實例的繼承關(guān)系沒有存儲,從而在每次訪問控制決策時都要進行偏序判斷。
由于角色數(shù)目大大減小,我們可以在角色中存儲它所有的祖先角色和子孫角色,無需對角色偏序進行遞歸搜索。
?
由于我們的選擇的參數(shù)有明顯的層次關(guān)系,所以參數(shù)的取值一般會顯式的表現(xiàn)出偏序關(guān)系。
?
我們引入了緩存機制來提高系統(tǒng)效率。
4 結(jié)論
本文提出了RBAC的一種擴展模型—參數(shù)化的RBAC模型,并給出了參數(shù)化的RBAC模型的形式化定義。
?
本文還討論了參數(shù)化的RBAC管理模型,并且根據(jù)在實際應(yīng)用中的經(jīng)驗,給出了參數(shù)選擇和管理的一些建議。
?
最后對參數(shù)化的RBAC模型的優(yōu)缺點進行了討論。
?
轉(zhuǎn)載于:https://www.cnblogs.com/meteorcui/archive/2005/12/31/2021237.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的参数化的RBAC模型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解读 WCP 环境
- 下一篇: 公众号H5运营如何激发用户的打开H5商城