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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

权限系统的设计模式 ACL RBAC ABAC

發布時間:2024/3/12 windows 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 权限系统的设计模式 ACL RBAC ABAC 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ACL(Access Control List):訪問權限列表? 如:

?

user1-->AC1

user1-->AC2

user2-->AC1? ? 此時權限匯總成一個列表

這種設計最常見的應用就是文件系統的權限設計,如微軟的NTFS

對權限控制比較分散,不便于管理,比如無法簡單地將一組文件設置統一的權限開放給指定的一群用戶

RBAC(Role Base Access Control):基于角色的權限控制

與ACL 對比? RBAC不用給用戶單個分配權限,只用指向對應的角色就會有對應的權限,而且分配權限和收回權限都很方便

如菜單權限的設計:用戶與角色關聯,角色與菜單關聯

??

ABAC(Attribute Base Access Control) 基于屬性的權限控制

不同于常見的將用戶通過某種方式關聯到權限的方式,ABAC則是通過動態計算一個或一組屬性來是否滿足某種條件來進行授權判斷(可以編寫簡單的邏輯)。屬性通常來說分為四類:用戶屬性(如用戶年齡),環境屬性(如當前時間),操作屬性(如讀取)和對象屬性(如一篇文章,又稱資源屬性),所以理論上能夠實現非常靈活的權限控制,幾乎能滿足所有類型的需求。

例如規則:“允許所有班主任在上課時間自由進出校門”這條規則,其中,“班主任”是用戶的角色屬性,“上課時間”是環境屬性,“進出”是操作屬性,而“校門”就是對象屬性了。為了實現便捷的規則設置和規則判斷執行,ABAC通常有配置文件(XML、YAML等)或DSL配合規則解析引擎使用。XACML(eXtensible Access Control Markup Language)是ABAC的一個實現,但是該設計過于復雜,我還沒有完全理解,故不做介紹。

總結一下,ABAC有如下特點:

  • 集中化管理
  • 可以按需實現不同顆粒度的權限控制
  • 不需要預定義判斷邏輯,減輕了權限系統的維護成本,特別是在需求經常變化的系統中
  • 定義權限時,不能直觀看出用戶和對象間的關系
  • 規則如果稍微復雜一點,或者設計混亂,會給管理者維護和追查帶來麻煩
  • 權限判斷需要實時執行,規則過多會導致性能問題
  • 既然ABAC這么好,那最流行的為什么還是RBAC呢?

    我認為主要還是因為大部分系統對權限控制并沒有過多的需求,而且ABAC的管理相對來說太復雜了。Kubernetes便因為ABAC太難用,在1.8版本里引入了RBAC的方案。

    ABAC有時也被稱為PBAC(Policy-Based Access Control)或CBAC(Claims-Based Access Control)。

    總結

    以上是生活随笔為你收集整理的权限系统的设计模式 ACL RBAC ABAC的全部內容,希望文章能夠幫你解決所遇到的問題。

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