RBAC是Role-Based Access Control得簡稱摧玫,也就是基于角色的訪問控制
在20世紀90年代期間泡躯,大量的專家學者和專門研究單位對RBAC的概念進行了深入研究房交,先后提出了許多類型的RBAC模型挠日,其中以美國George Mason大學信息安全技術實驗室(LIST)提出的RBAC96模型最具有系統(tǒng)性诵棵,得到普遍的公認舶胀。
RBAC認為權限的過程可以抽象概括為:判斷【W(wǎng)ho是否可以對What進行How的訪問操作(Operator)】這個邏輯表達式的值是否為True的求解過程两蟀。
即將權限問題轉換為Who网梢、What、How的問題赂毯。who战虏、what、how構成了訪問權限三元組党涕。
RBAC支持公認的安全原則:最小特權原則烦感、責任分離原則和數(shù)據(jù)抽象原則。
最小特權原則得到支持膛堤,是因為在RBAC模型中可以通過限制分配給角色權限的多少和大小來實現(xiàn)手趣,分配給與某用戶對應的角色的權限只要不超過該用戶完成其任務的需要就可以了。
責任分離原則的實現(xiàn)肥荔,是因為在RBAC模型中可以通過在完成敏感任務過程中分配兩個責任上互相約束的兩個角色來實現(xiàn)绿渣,例如在清查賬目時,只需要設置財務管理員和會計兩個角色參加就可以了燕耿。
數(shù)據(jù)抽象是借助于抽象許可權這樣的概念實現(xiàn)的中符,如在賬目管理活動中,可以使用信用誉帅、借方等抽象許可權淀散,而不是使用操作系統(tǒng)提供的讀右莱、寫、執(zhí)行等具體的許可權档插。但RBAC并不強迫實現(xiàn)這些原則慢蜓,安全管理員可以允許配置RBAC模型使它不支持這些原則。因此阀捅,RBAC支持數(shù)據(jù)抽象的程度與RBAC模型的實現(xiàn)細節(jié)有關胀瞪。
RBAC96是一個模型族,其中包括RBAC0~RBAC3四個概念性模型饲鄙。
1凄诞、基本模型RBAC0定義了完全支持RBAC概念的任何系統(tǒng)的最低需求。
2忍级、RBAC1和RBAC2兩者都包含RBAC0帆谍,但各自都增加了獨立的特點,它們被稱為高級模型轴咱。
??? RBAC1中增加了角色分級的概念汛蝙,一個角色可以從另一個角色繼承許可權。
??? RBAC2中增加了一些限制朴肺,強調在RBAC的不同組件中在配置方面的一些限制窖剑。
3、RBAC3稱為統(tǒng)一模型戈稿,它包含了RBAC1和RBAC2西土,利用傳遞性,也把RBAC0包括在內鞍盗。這些模型構成了RBAC96模型族需了。
RBAC模型簡述
RBAC0的模型中包括用戶(U)、角色(R)和許可權(P)等3類實體集合般甲。
RABC0權限管理的核心部分肋乍,其他的版本都是建立在0的基礎上的,看一下類圖:
RBAC0定義了能構成一個RBAC控制系統(tǒng)的最小的元素集合敷存。
在RBAC之中,包含用戶users(USERS)墓造、角色roles(ROLES)、目標objects(OBS)锚烦、操作operations(OPS)觅闽、許可權permissions(PRMS)五個基本數(shù)據(jù)元素,此模型指明用戶挽牢、角色、訪問權限和會話之間的關系摊求。
每個角色至少具備一個權限禽拔,每個用戶至少扮演一個角色;可以對兩個完全不同的角色分配完全相同的訪問權限;會話由用戶控制睹栖,一個用戶可以創(chuàng)建會話并激活多個用戶角色硫惕,從而獲取相應的訪問權限,用戶可以在會話中更改激活角色野来,并且用戶可以主動結束一個會話恼除。
用戶和角色是多對多的關系,表示一個用戶在不同的場景下可以擁有不同的角色曼氛。
例如項目經理也可以是項目架構師等豁辉;當然了一個角色可以給多個用戶,例如一個項目中有多個組長舀患,多個組員等徽级。
這里需要提出的是,將用戶和許可進行分離聊浅,是彼此相互獨立餐抢,使權限的授權認證更加靈活。
角色和許可(權限)是多對多的關系低匙,表示角色可以擁有多份權利旷痕,同一個權利可以授給多個角色都是非常容易理解的,想想現(xiàn)實生活中顽冶,當官的級別不同的權限的情景欺抗,其實這個模型就是對權限這方面的一個抽象,聯(lián)系生活理解就非常容易了渗稍。
RBAC1佩迟,基于RBAC0模型,引入角色間的繼承關系竿屹,即角色上有了上下級的區(qū)別报强,角色間的繼承關系可分為一般繼承關系和受限繼承關系。一般繼承關系僅要求角色繼承關系是一個絕對偏序關系拱燃,允許角色間的多繼承秉溉。而受限繼承關系則進一步要求角色繼承關系是一個樹結構,實現(xiàn)角色間的單繼承碗誉。
這種模型合適于角色之間的層次明確召嘶,包含明確。
RBAC2哮缺,基于RBAC0模型的基礎上弄跌,進行了角色的訪問控制。
RBAC2模型中添加了責任分離關系尝苇。RBAC2的約束規(guī)定了權限被賦予角色時铛只,或角色被賦予用戶時埠胖,以及當用戶在某一時刻激活一個角色時所應遵循的強制性規(guī)則。責任分離包括靜態(tài)責任分離和動態(tài)責任分離淳玩。約束與用戶-角色-權限關系一起決定了RBAC2模型中用戶的訪問許可直撤,此約束有多種。
????互斥角色?:同一用戶只能分配到一組互斥角色集合中至多一個角色蜕着,支持責任分離的原則谋竖。互斥角色是指各自權限互相制約的兩個角色承匣。對于這類角色一個用戶在某一次活動中只能被分配其中的一個角色蓖乘,不能同時獲得兩個角色的使用權。常舉的例子:在審計活動中悄雅,一個角色不能同時被指派給會計角色和審計員角色驱敲。
????基數(shù)約束?:一個角色被分配的用戶數(shù)量受限;一個用戶可擁有的角色數(shù)目受限宽闲;同樣一個角色對應的訪問權限數(shù)目也應受限众眨,以控制高級權限在系統(tǒng)中的分配。例如公司的領導人有限的容诬;
????先決條件角色?:可以分配角色給用戶僅當該用戶已經是另一角色的成員娩梨;對應的可以分配訪問權限給角色,僅當該角色已經擁有另一種訪問權限览徒。指要想獲得較高的權限狈定,要首先擁有低一級的權限。就像我們生活中习蓬,國家主席是從副主席中選舉的一樣纽什。
????運行時互斥?:例如,允許一個用戶具有兩個角色的成員資格躲叼,但在運行中不可同時激活這兩個角色芦缰。
RBAC3,也就是最全面級的權限管理枫慷,它是基于RBAC0的基礎上疼约,將RBAC1和RBAC2進行整合了张咳,最前面招刹,也最復雜的:
綜上為權限管理模型的相關介紹渔彰,其實在任何系統(tǒng)中都會涉及到權限管理的模塊,無論復雜簡單誉裆,我們都可以通過以RBAC模型為基礎顿颅,進行相關靈活運用來解決我們的問題。