ABAC权限模型的设计
生活随笔
收集整理的這篇文章主要介紹了
ABAC权限模型的设计
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ABAC(Attribute Base Access Control) 基于屬性的權限控制
? 不同于常見的將用戶通過某些方式關聯到權限的方式,ABAC則是通過動態計算一個或一組屬性來
? 判斷是否滿足某種條件來進行授權判斷(可以編寫簡單的邏輯)。
屬性通常來說分為四類:
? 用戶屬性(如用戶年齡 用戶地址)
? 環境屬性(比如當前時間)
? 操作屬性(增、刪、改、查)
? 對象屬性(比如一篇文章,又稱資源屬性)
例如:
? 規則:“允許所有班主任在上課時間可以自由出入校門”這條規則,其中,“班主任”是用戶的角色屬性
? “上課時間”是環境屬性,’‘進出’‘是操作屬性,而"校門"就是對象屬性。 為了實現便捷的規則設置判斷
? 執行,ABAC通常有配置文件(XML、YAML等)或者DSL配合規則解析引擎使用。
? XACML(eXtensible Access Control Markup Language)是ABAC的一個實現,但是該設置過于復雜
ABAC的特點
1.集中化管理
2.可以按需求實現不同顆粒度的權限控制
3.不需要預定義判斷邏輯,減輕了權限系統的維護成本,特別是在需求經常變的系統中
4.定義權限時,不能直觀看出用戶和對象間的關系
5.規則如果稍微復雜一點,或者設計混亂,會給管理者維護和追查帶來麻煩
6.權限判斷需要實時執行,規則過多會導致性能出現問題
ABAC有時也被稱為PBAC(Policy-Based Access Control)或CBAC(Claims-Based Access Control)。
總結
以上是生活随笔為你收集整理的ABAC权限模型的设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据湖常用查询优化技术
- 下一篇: App应用双开技术,Android沙盒