摘要: 為了保護(hù)云資源的安全,防止數(shù)據(jù)泄露和非授權(quán)訪問,必須對云平臺(tái)的資源訪問實(shí)施訪問控制。然而,目前主流云平臺(tái)通常采用自己的安全策略語言和訪問控制機(jī)制,從而造成兩個(gè)問題:
- 云用戶若要使用多個(gè)云平臺(tái),則需要學(xué)習(xí)不同的策略語言,分別編寫安全策略;
- 云服務(wù)提供商需要自行設(shè)計(jì)符合自己平臺(tái)的安全策略語言及訪問控制機(jī)制,開發(fā)成本較高。
對此,提出一種基于元模型的訪問控制策略描述語言PML及其實(shí)施機(jī)制PML-EM.PML支持表達(dá)BLP、RBAC、ABAC等訪問控制模型。
PML-EM實(shí)現(xiàn)了3個(gè)性質(zhì):
策略語言無關(guān)性
、訪問控制模型無關(guān)性
和程序設(shè)計(jì)語言無關(guān)性
,從而降低了用戶編寫策略的成本與云服務(wù)提供商開發(fā)訪問控制機(jī)制的成本。
在線論文地址:http://www.jos.org.cn/jos/article/abstract/5624
Casbin 是一個(gè)強(qiáng)大的、高效的開源訪問控制框架,支持
Go, Java, Node.js, Javascript (React), Python, PHP, .NET, C++, Rust
等十幾種語言。Casbin 開源項(xiàng)目由北京大學(xué)羅楊博士創(chuàng)立于 2017 年,核心維護(hù)團(tuán)隊(duì)有二十多人。Casbin 在業(yè)界具有廣泛影響力。
目前已經(jīng)被 Intel 、VMware 、Orange 、RedHat 、T-Mobile
等公司開源使用,被騰訊云、Cisco 、Verizon
等公司閉源使用。具體詳見 Casbin 主頁。Casbin Go 主項(xiàng)目目前 GitHub 10000+ stars,加上所有語言的實(shí)現(xiàn)、插件等可達(dá)到 15000+ stars
。
官方地址:https://casbin.org/
基于創(chuàng)始人在北大提出的PERM元模型的學(xué)術(shù)論文(英文版:arXiv,中文版: 軟件學(xué)報(bào))
PERM:Policy, Effect, Request, Matcher
[request_definition]、[policy_definition]、[policy_effect]、[matchers]
[role_definition]
部分。Model CONF
可以包含注釋。注釋以#
開頭,#
將注釋整行。與 policy 不同,model 只能加載,不能保存。因?yàn)槲覀冋J(rèn)為 model 不是動(dòng)態(tài)組件,不應(yīng)該在運(yùn)行時(shí)進(jìn)行修改,所以我們沒有實(shí)現(xiàn)一個(gè) API 來將 model 保存到存儲(chǔ)中。
在Casbin中,適配器(adapter,Casbin的中間件)
實(shí)現(xiàn)了policy規(guī)則寫入持久層的細(xì)節(jié)。Casbin的用戶可以調(diào)用adapter的LoadPolicy()
方法從持久層中加載policy規(guī)則,同樣也可以調(diào)用SavePolicy()
方法將Policy規(guī)則保存到持久層中。
ACL (Access Control List)訪問控制列表
具有 超級(jí)用戶
的 ACL沒有用戶的 ACL
: 對于沒有身份驗(yàn)證或用戶登錄的系統(tǒng)尤其有用。沒有資源的 ACL
: 某些場景可能只針對資源的類型, 而不是單個(gè)資源, 諸如 write-article, read-log等權(quán)限。 它不控制對特定文章或日志的訪問。RBAC (基于角色的訪問控制)
支持資源角色的RBAC
: 用戶和資源可以同時(shí)具有角色 (或組)。支持域/租戶的RBAC
: 用戶可以為不同的域/租戶設(shè)置不同的角色集。ABAC (基于屬性的訪問控制)
: 支持利用resource.Owner這種語法糖獲取元素的屬性。RESTful
: 支持路徑, 如 /res/*
, /res/:id
和 HTTP
方法,如 GET
, POST
, PUT
, DELETE
。拒絕優(yōu)先
: 支持允許和拒絕授權(quán), 拒絕優(yōu)先于允許。優(yōu)先級(jí)
: 策略規(guī)則按照先后次序確定優(yōu)先級(jí),類似于防火墻規(guī)則。上傳圖片太麻煩。直接訪問這個(gè)地址:https://mp.weixin.qq.com/s/GgLuhGoGUbNduLH9czytzg
版權(quán)聲明
作者:Tinywan
出處:https://mp.weixin.qq.com/s/GgLuhGoGUbNduLH9czytzg
本文版權(quán)歸作者和workerman官方共有。歡迎轉(zhuǎn)載,但必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。
歡迎關(guān)注個(gè)人微信公眾號(hào),一起進(jìn)步!掃描左方二維碼即可
感覺很厲害