日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

权限设计,设计模型分析(DAC,MAC,RBAC,ABAC) 之 RBAC

發布時間:2024/3/12 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 权限设计,设计模型分析(DAC,MAC,RBAC,ABAC) 之 RBAC 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、什么是RBAC模型

RBAC是Role-Based Access Control的縮寫,意為:基于角色的權限控制。通過角色關聯用戶,角色關聯權限的方式間接賦予用戶權限。

如下圖:

?為什么不直接給用戶分配權限,還多此一舉的增加角色這一環節呢?

????????其實是可以直接給用戶分配權限,只是直接給用戶分配權限,少了一層關系,擴展性弱了許多,適合那些用戶數量、角色類型少的平臺。

對于通常的系統,比如:存在多個用戶擁有相同的權限,在分配的時候就要分別為這幾個用戶指定相同的權限,修改時也要為這幾個用戶的權限進行一一修改。有了角色后,我們只需要為該角色制定好權限后,將相同權限的用戶都指定為同一個角色即可,便于權限管理。

對于批量的用戶權限調整,只需調整用戶關聯的角色權限,無需對每一個用戶都進行權限調整,既大幅提升權限調整的效率,又降低了漏調權限的概率。

二、RBAC模型的分類

RBAC模型可以分為:RBAC0、RBAC1、RBAC2、RBAC3 四種。其中RBAC0是基礎,也是最簡單的,相當于底層邏輯,RBAC1、RBAC2、RBAC3都是以RBAC0為基礎的升級。

一般情況下,使用RBAC0模型就可以滿足常規的權限管理系統設計了。

2.1 RBAC0模型

最簡單的用戶、角色、權限模型。這里面又包含了2種:

  • 用戶和角色是多對一關系,即:一個用戶只充當一種角色,一種角色可以有多個用戶擔當。
  • 用戶和角色是多對多關系,即:一個用戶可同時充當多種角色,一種角色可以有多個用戶擔當。
  • 那么,什么時候該使用多對一的權限體系,什么時候又該使用多對多的權限體系呢?

    如果系統功能比較單一,使用人員較少,崗位權限相對清晰且確保不會出現兼崗的情況,此時可以考慮用多對一的權限體系。其余情況盡量使用多對多的權限體系,保證系統的可擴展性。如:張三既是行政,也負責財務工作,那張三就同時擁有行政和財務兩個角色的權限。

    2.2 RBAC1模型

    相對于RBAC0模型,增加了子角色,引入了繼承概念,即子角色可以繼承父角色的所有權限。

    使用場景:如某個業務部門,有經理、主管、專員。主管的權限不能大于經理,專員的權限不能大于主管,如果采用RBAC0模型做權限系統,極可能出現分配權限失誤,最終出現主管擁有經理都沒有的權限的情況。

    而RBAC1模型就很好解決了這個問題,創建完經理角色并配置好權限后,主管角色的權限繼承經理角色的權限,并且支持在經理權限上刪減主管權限。

    2.3 RBAC2模型

    基于RBAC0模型,增加了對角色的一些限制:角色互斥、基數約束、先決條件角色等。

    • 角色互斥:同一用戶不能分配到一組互斥角色集合中的多個角色,互斥角色是指權限互相制約的兩個角色。案例:財務系統中一個用戶不能同時被指派給會計角色和審計員角色。
    • 基數約束:一個角色被分配的用戶數量受限,它指的是有多少用戶能擁有這個角色。例如:一個角色專門為公司CEO創建的,那這個角色的數量是有限的。
    • 先決條件角色:指要想獲得較高的權限,要首先擁有低一級的權限。例如:先有副總經理權限,才能有總經理權限。
    • 運行時互斥:例如,允許一個用戶具有兩個角色的成員資格,但在運行中不可同時激活這兩個角色。

    2.4 RBAC3模型

    ????????稱為統一模型,它包含了RBAC1和RBAC2,利用傳遞性,也把RBAC0包括在內,綜合了RBAC0、RBAC1和RBAC2的所有特點。


    這里結合我的見解,簡單的描述下。

    RBAC0:是RBAC的核心思想。

    RBAC1:是把RBAC的角色分層模型。

    RBAC2:增加了RBAC的約束模型。

    RBAC3:其實是RBAC2 + RBAC1。

    三、怎么利用RBAC模型來進行權限體系的設計?

    我們已經知道什么是RBAC模型了,在分析怎么來根據此模型來設計權限體系之前,我們再把這個模型要素進行拆分一下。

    首先是:用戶、角色、權限

    而權限,具體到某個軟件來說,實際上包含兩個方面。一個是菜單權限,另一個是數據權限。

    ?不同的行業會有不同的使用場景,用戶角色權限模型也會有不同程度上的變化。

    可以看看這個文章,有相關數據表的設計 :設計一個權限系統-RBAC - 簡書 (jianshu.com)

    四、看看ABAC,暢想下未來的權限模式

    至此,我們可以了解到:RBAC模型實際上能解決大部分的權限設計問題了。

    那么,ABAC到底是什么呢?它存在的意義在哪里?關于未來的權限設計趨勢,它能帶給我們什么啟發呢?

    帶著這些問題,我們先來看看到底什么是ABAC模型。

    ABAC,Attribute-based Access Control. 基于屬性的訪問控制。而屬性,總的來說有三類:用戶屬性、系統或應用被訪問屬性(數據和操作)、環境屬性。

    也就是說,系統根據一組或多組屬性是否滿足預設規則來動態的控制,誰可以訪問哪些功能數據和操作。RBAC模型,其實可以看成是靜態的、單組屬性的ABAC模型。

    用例子來理解這個模型就是:只有當用戶角色為Admin,在工作時間內,且處在C棟大樓B實驗室,才可以訪問D文件。

    實際上,ABAC是個可以以最細顆粒度來管理權限的模型。它可以讓設計者,利用任何一個用戶屬性、環境屬性,或者多個屬性之間的交集、并集等來組合出動態的權限判斷邏輯。

    ABAC?復雜場景下訪問控制解決之道。

    RBAC和ABAC的區別

    RBAC與ABAC之間的主要區別在于方法授予訪問權限的方式。 RBAC按照角色授予訪問權限,ABAC可以根據用戶特征,對象特征,操作類型等屬性確定訪問權限。

    RBAC優缺點:

    優點:

    RBAC 模型構建起來更加簡單,對于中小型組織,維護角色和授權關系的工作量不大,反而定制各種策略相對麻煩,更容易接受RBAC授權模型。

    缺點:

    對于大型組織,基于RBCA的控制模型需要維護大量的角色和授權關系,且無法做到對資源細粒度地授權。

    ABAC優缺點:

    優點:

    對于大型組織,基于RBCA的控制模型需要維護大量的角色和授權關系,相比而言,ABAC更加靈活。
    新增資源時,ABAC僅需要維護較少的資源,而RBAC需要維護所有相關的角色,ABAC可擴展性更強、更方便。
    ABAC 有更加細粒度控制和根據上下文動態執行,RBAC只能基于靜態的參數進行判斷。

    缺點

    模型構建相對比較復雜。

    參考文獻

    • 什么是基于角色的訪問控制 (RBAC)?示例、優勢等:What is Role-Based Access Control (RBAC)? Examples, Benefits, and More | UpGuardThis is a complete overview of role-based access control (RBAC). Learn about common uses of RBAC, why it is used, and its benefits in this in post.https://www.upguard.com/blog/rbac
    • 訪問控制的組件是什么?(DAC,MAC,RBAC,ABAC):What is Access Control? The Essential Cybersecurity Practice | UpGuardhttps://www.upguard.com/blog/access-control
    • 基于屬性的訪問控制 (ABAC):What is Attribute-Based Access Control (ABAC)? - Definition from Techopediahttps://www.techopedia.com/definition/29706/attribute-based-access-control-abac
    • ABAC - 基于屬性的訪問控制 - 復雜場景下訪問控制解決之道_Yuchen_HAARP的博客-CSDN博客_基于屬性的訪問控制https://blog.csdn.net/XiaoBeiTu/article/details/100773968

    零信任架構_PolarDay.的博客-CSDN博客_零信任架構物理邊界曾經是可信網絡和不可信網絡之間的有效分割,防火墻通常位于網絡的邊緣,基于靜態策略來控制網絡流量。位于防火墻內部的用戶會被授予高信任等級來訪問企業的敏感資源,因為他們被默認是可信的。但隨著業務遷移到云端,APT攻擊的泛濫,以及移動辦公的趨勢,傳統的安全邊界變的模糊,既然網絡和威脅已經發生了變化,我們的防御模型也要跟著變化。零信任是一種安全模型。首先我們要拋棄傳統的邊界觀念,不再依據用戶所處的網絡位置而決定這個人是否可信。取而代之的是我們對每個請求都進行嚴格驗證信任建立起來之前,網絡上的任何資源都是https://blog.csdn.net/shn111/article/details/125195071?

    總結

    以上是生活随笔為你收集整理的权限设计,设计模型分析(DAC,MAC,RBAC,ABAC) 之 RBAC的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。