天天看點

基于角色的通路控制

RBAC概述

基于角色的通路控制(Role-Based Access Control, RBAC )的核心思想就是将通路權限與角色相聯系,通過給使用者配置設定合适的角色,讓使用者與通路權限相聯系。

角色是權限的集合,對于一個系統中可以有多個角色,每個角色對不同的資源有不同的權限,當使用者通路資源時,首先系統識别使用者的角色,然後決定該使用者是否具有通路該資源的權限。角色是一種抽象的概念,将使用者權限從每個單一使用者抽象出來,成為一個集合,也就是角色。

基于角色的通路控制

通過将通路權限以角色的形式抽象出來,使用者與客體無直接聯系,他隻有通過角色才享有該角色所對應的權限,進而通路相應的客體。

同一使用者可以有多個角色,同一角色也可以對應多個使用者,但是角色和使用者之間具有限制關系。

角色的引入,用于表示使用者具有的職權和責任,代表他執行某項任務的能力,反映他在多個從業人員流轉的特定任務,中的職權配置設定,使計算機化的資訊系統對資源存取權的定義更接近現實生活。 進而使這些模型精化的過程更平滑,使現實與計算機實作政策不沖突。

角色的概念

1.RBAC中的核心概念就是角色(Role),角色是主體的通路權限的集合,一個角色可以對應多個使用者,一個使用者也可以擁有多個角色,在RBAC中角色的設定應具有一下兩個特征:

  1. 決定角色的使用者集與決定角色的權限集所使用的時間差不多;
  2. 角色對應的使用者集的改變和角色的操作集的改變隻能有少數特權使用者來控制。

注釋:

第一點決定了基于角色的通路控制不能降低通路效率;

第二點決定了隻有少數“管理者“擁有賦予單個使用者權限的權利;這一點是和自主通路控制(Discretionary Access Control,DAC)相對應的,DAC中主體可以自主地把自己所擁有客體的通路權限授予其它主體或者從其它主體收回所授予的權限,自主通路控制有以下缺點:

a) 資源管理比較分散;

b) 不易管理;

c) 不能對系統中資訊流進行保護,資訊容易洩漏;

當這種權限被限制到少數人手裡之後可以避免上述錯誤。

2.最小權限原則

最小權限原則:規定使用者所擁有的角色集對應 的權限不能超過使用者工作時所需要的最大權限,而且每次會話中激活的角色集所對應的權限要小于等于使用者所擁有的權限。

該原則為了防止一個使用者在一次通路中使用角色集中權限遠大于本次通路所需要的權限是出現的浪費,誤操作等破壞系統的行為。

3.RBAC模型不允許一次會話建立另一次會話。會話指的是某次對資源存取的通路活動。

4.角色等級

RBAC模型中引入了角色等級來反映一個組織的職權和責任分布的偏序關系;

5.RBAC中的限制

“基本排斥“角色限制“:由于角色之間互相排斥,一個使用者最多隻能配置設定到這兩個角色中的一個。

“ 雙重限制”: 就是指同一權限隻能分派給互相排斥的角色中的一個。

“ 基本限制”: 限制規定了一個角色可被配置設定的最大使用者數。

“ 必備角色” 限制:當使用者擁有了角色A時,角色B也可以配置設定給該使用者,但角色B在其它任何情況下都不能配置設定給使用者,這個角色A就是角色B的必備角色。

注釋;

基本排斥角色限制:比如某個項目既有測試工程師角色,也有開發工程師角色,如果是開發工程師就不能是測試工程師,反之亦然,這兩個就是基本排斥限制;

雙重限制:比如在政府部門中局長和副局長這兩個角色是互相排斥的,且對檔案進行簽發的操作隻能由局長執行。 這種權限配置設定限制阻止了權限被故意地或者非故意地配置設定給護士長角色。

必備角色限制:比如如果你時A公司的員工,那麼你可以是A公司的測試工程師,前者就是後者的必備角色。

使用者,組與角色

基于角色的通路控制

除了使用者直接對應角色之外,還可以用組的形式與角色相關聯,當某使用者需要某權限時加入擁有該權限角色對應的組,當任務完成後從組中離開即可。

如圖所示,假如新使用者需要通路資源1時,假如組1,通過組1對應角色所擁有的權限進行通路,

當删除使用者結束任務後,從組2中離開即可。

組的出現可以減少不必要的重複工作,比如一個男人在家,既要承擔父親的角色,又要承擔丈夫,兒子的角色,如果給每一個成家立業的男人賦予這麼多角色将是很多重複的工作,不如将它們抽象為“男人組“,當某男人回家之後就把他加入到“男人組“中,離開家之後就把他從“男人組“中删除,這樣就極大提高了效率。

一個組可以擁有多個角色,一個角色也可以有多個組;同樣一個使用者也可以出于多個組中,一個組中當然也可以有多個使用者。

基于角色的通路控制

如上圖所示,角色1擁有組1,組2兩個組,角色2擁有組2,組3兩個組,反過來,組1,組2分别擁有角色1,角色2的權限,組2同時擁有角色1,角色2的權限。

使用者3覺得組2的權限滿足不了他了,就可以選擇退出組2,加入組3。對于角色也可以選擇撤銷某角色或添加某角色;從角色的角度講,它可以添加某組使用者或删除某組使用者,這兩者都是相對的。

因為使用者的角色常常改變,但某角色的任務并不會改變很多。比如某博士生進學校,首先職稱為講師,之後随着閱曆和科研水準的提高,職稱也逐漸變為副教授和教授,也就是說該博士生的角色一直在改變,但是角色對應的權限并不會變化很大,這也是基于角色的通路控制的最重要的優勢之一。

參考文獻

[1] 趙亮,茅兵,謝立.通路控制研究綜述[J] .《計算機工程》,2004,30(2):187-189

[2] 李孟珂,餘祥宣.基于角色的通路控制技術及應用[J].《計算機應用研究》 , 2000 , 17 (10) :44-47

[3] 洪帆,何緒斌,徐智勇.基于角色的通路控[J].《小型微型計算機系統》,2000,21(2):198-200

繼續閱讀