RBAC的設計與分析


1、RBAC是什么

1.1、概述

RBAC模型(Role-Based Access Control:基於角色的訪問控制)模型是20世紀90年代研究出來的一種新模型,但其實在20世紀70年代的多用戶計算時期,這種思想就已經被提出來,直到20世紀90年代中后期,RBAC才在研究團體中得到一些重視,並先后提出了許多類型的RBAC模型。其中以美國George Mason大學信息安全技術實驗室(LIST)提出的RBAC96模型最具有代表,並得到了普遍的公認。

RBAC認為權限授權的過程可以抽象地概括為:Who是否可以對What進行How的訪問操作,並對這個邏輯表達式進行判斷是否為True的求解過程,也即是將權限問題轉換為What、How的問題,Who、What、How構成了訪問權限三元組,具體的理論可以參考RBAC96的論文,這里我們就不做詳細的展開介紹,大家有個印象即可。

1.2、組成

在RBAC模型里面,有3個基礎組成部分,分別是:用戶、角色和權限。

RBAC通過定義角色的權限,並對用戶授予某個角色從而來控制用戶的權限,實現了用戶和權限的邏輯分離(區別於ACL模型),極大地方便了權限的管理

下面在講解之前,先介紹一些名詞:

  • User(用戶):每個用戶都有唯一的UID識別,並被授予不同的角色
  • Role(角色):不同角色具有不同的權限
  • Permission(權限):訪問權限
  • 用戶-角色映射:用戶和角色之間的映射關系
  • 角色-權限映射:角色和權限之間的映射

例如下圖,管理員和普通用戶被授予不同的權限,普通用戶只能去修改和查看個人信息,而不能創建創建用戶和凍結用戶,而管理員由於被授予所有權限,所以可以做所有操作。

1.3、RBAC支持的安全原則

RBAC支持三個著名的安全原則:最小權限原則、責任分離原則和數據抽象原則

  • 最小權限原則:RBAC可以將角色配置成其完成任務所需的最小權限集合
  • 責任分離原則:可以通過調用相互獨立互斥的角色來共同完成敏感的任務,例如要求一個計賬員和財務管理員共同參與統一過賬操作
  • 數據抽象原則:可以通過權限的抽象來體現,例如財務操作用借款、存款等抽象權限,而不是使用典型的讀、寫、執行權限

1.4、RBAC的優缺點

(1)優點:

  • 簡化了用戶和權限的關系

  • 易擴展、易維護
    (2) 缺點:

  • RBAC模型沒有提供操作順序的控制機制,這一缺陷使得RBAC模型很難適應哪些對操作次序有嚴格要求的系統

1.5、RBAC的3種模型

(1)RBAC0
RBAC0,是最簡單、最原始的實現方式,也是其他RBAC模型的基礎。

角色間的繼承關系可分為一般繼承關系和受限繼承關系。一般繼承關系僅要求角色繼承關系是一個絕對偏序關系,允許角色間的多繼承。而受限繼承關系則進一步要求角色繼承關系是一個樹結構,實現角色間的單繼承。

這種模型適合於角色之間層次分明,可以給角色分組分層。

(3)RBAC2
RBAC2,基於RBAC0模型的基礎上,進行了角色的訪問控制。

RBAC2中的一個基本限制是互斥角色的限制,互斥角色是指各自權限可以互相制約的兩個角色。對於這類角色一個用戶在某一次活動中只能被分配其中的一個角色,不能同時獲得兩個角色的使用權。

該模型有以下幾種約束:

  • 互斥角色 :同一用戶只能分配到一組互斥角色集合中至多一個角色,支持責任分離的原則。互斥角色是指各自權限互相制約的兩個角色。對於這類角色一個用戶在某一次活動中只能被分配其中的一個角色,不能同時獲得兩個角色的使用權。常舉的例子:在審計活動中,一個角色不能同時被指派給會計角色和審計員角色。
  • 基數約束 :一個角色被分配的用戶數量受限;一個用戶可擁有的角色數目受限;同樣一個角色對應的訪問權限數目也應受限,以控制高級權限在系統中的分配。例如公司的領導人有限的;
  • 先決條件角色 :可以分配角色給用戶僅當該用戶已經是另一角色的成員;對應的可以分配訪問權限給角色,僅當該角色已經擁有另一種訪問權限。指要想獲得較高的權限,要首先擁有低一級的權限。就像我們生活中,國家主席是從副主席中選舉的一樣。
  • 運行時互斥 :例如,允許一個用戶具有兩個角色的成員資格,但在運行中不可同時激活這兩個角色。

2、如何設計RBAC

這一節,我會介紹設計基於RBAC模型的權限系統的功能模塊組成、流程以及數據庫的設計。

2.1、RBAC的功能模塊

2.2、RBAC執行流程

2.3、RBAC數據庫設計


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM