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