當前位置:
首頁 > 新聞 > 支持MACRBACABAC多種模型的Golang訪問控制框架 – casbin

支持MACRBACABAC多種模型的Golang訪問控制框架 – casbin




casbin


casbin是一個用Go語言打造的輕量級開源訪問控制框架(https://github.com/hsluoyz/casbin),目前在GitHub開源。casbin採用了元模型的設計思想,支持多種經典的訪問控制方案,如基於角色的訪問控制RBAC、基於屬性的訪問控制ABAC等。





casbin的主要特性


支持自定義請求的格式,默認的請求格式為{subject, object, action};



具有訪問控制模型model和策略policy兩個核心概念;


支持RBAC中的多層角色繼承,不止主體可以有角色,資源也可以具有角色;


支持超級用戶,如root或Administrator,超級用戶可以不受授權策略的約束訪問任意資源;

支持多種內置的操作符,如keyMatch,方便對路徑式的資源進行管理,如/foo/bar可以映射到/foo*;




casbin不做的事情


身份認證authentication(即驗證用戶的用戶名、密碼),casbin只負責訪問控制。應該有其他專門的組件負責身份認證,然後由casbin進行訪問控制,二者是相互配合的關係;


管理用戶列表或角色列表。casbin認為由項目自身來管理用戶、角色列表更為合適,casbin假設所有策略和請求中出現的用戶、角色、資源都是合法有效的。




安裝


go get github.com/hsluoyz/casbin



HelloWorld例子


初始化一個enforcer,傳入兩個參數:模型文件路徑和策略文件路徑




e := &Enforcer{}


e.Init("examples/basic_model.conf", "examples/basic_policy.csv")


在你的代碼需要進行訪問控制的位置,加入如下鉤子;



sub := "alice"

obj := "data1"


act := "read"


if e.Enforce(sub, obj, act) == true {


// permit alice to read data1 } else {


// deny the request, show an error }


採用管理API進行許可權的管理,如獲取一個用戶所有的角色;



roles := e.GetRoles("alice")

請參考_test.go測試文件獲得更多的使用方法。




社區進展


casbin目前正在積極向社區進行推送,已經聯繫的社區包括etcd、tango,將來有可能推送到docker社區。





協議


casbin採用Apache 2.0開源協議發布。




聯繫作者


有問題請提交Issues: https://github.com/hsluoyz/casbin/issues,或者聯繫我QQ: 515964173


*本文作者:hsluoyz,轉載請註明來自FreeBuf.com。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 FreeBuf 的精彩文章:

美國在安全教育方面是怎麼做的,還有什麼地方需要改進?
防火防盜防間諜:走近中國「反間諜」手段
Hacking Tools搜羅大集合

TAG:FreeBuf |

您可能感興趣

Digi-Key 提供對 Ultra Librarian EDA /CAD 模型的無限制訪問
LEGO 發布 James Bond? Aston Martin DB5 跑車積木模型
TensorFlow 的模型分析工具——TFMA
Azuma Makoto 創作 SHIKI Model Kit 「式」花藝模型
Bandai 宣布再度販售 Metal Build EVA 初號機玩具模型
Solidworks eDrawings開始支持VR模式查看CAD模型
BANDAI White Base 白色木馬 | 科幻模型
Chrome 66 新特性:CSS 類型對象模型,非同步剪貼板 API,AudioWorklet,等
Capture用iPhone深度攝像頭為AR/VR掃描3D模型
Mac上訓練機器學習模型,蘋果WWDC發布全新Create ML、Core ML 2
Arvizio發布MR Studio 4.0,支持HoloLens、Magic Leap與點雲、攝影測量模型進行交互
Metal Build EVA 初號機模型再度販售
在Mac上訓練機器學習模型,蘋果WWDC發布全新Create ML、Core ML 2
LEGO 預告即將推出 James Bond 御用 Aston Martin 跑車積木模型
Nat Biotechnol:研究人員開發新的機器學習模型預測CRISPR-Cas9編輯人原代T細胞的結果
Google推出AI晶元Edge TPU,可在邊緣運行TensorFlow Lite機器學習模型
Meta新增SOLIDWORKS集成,支持AR瀏覽CAD模型
CIKM AnalytiCup 2018冠軍方案出爐,看他們構造模型的訣竅
將 TensorFlow 訓練好的模型遷移到 Android APP上
IBM CodePattern可創建自己的AI模型來識別對象