<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          casbin輕量級訪問控制框架

          聯(lián)合創(chuàng)作 · 2023-09-30 09:01

          casbin 是一個用 Go 語言打造的輕量級開源訪問控制框架,采用了元模型的設(shè)計思想,支持多種經(jīng)典的訪問控制方案,如基于角色的訪問控制 RBAC、基于屬性的訪問控制 ABAC 等。

          casbin 的主要特性包括:

          1. 支持自定義請求的格式,默認(rèn)的請求格式為{subject, object, action};

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

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

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

          5. 支持多種內(nèi)置的操作符,如 keyMatch,方便對路徑式的資源進(jìn)行管理,如 /foo/bar 可以映射到 /foo*;

          casbin 不做的事情:

          1. 身份認(rèn)證 authentication(即驗證用戶的用戶名、密碼),casbin 只負(fù)責(zé)訪問控制。應(yīng)該有其他專門的組件負(fù)責(zé)身份認(rèn)證,然后由 casbin 進(jìn)行訪問控制,二者是相互配合的關(guān)系;

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

          安裝

          go get github.com/hsluoyz/casbin

          HelloWorld 例子

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

          e := &Enforcer{}
          e.Init("examples/basic_model.conf", "examples/basic_policy.csv")

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

          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進(jìn)行權(quán)限的管理,如獲取一個用戶所有的角色;

          roles := e.GetRoles("alice")

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

          瀏覽 18
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  免费看的A片 | 韩国一级特黄色片 | 在线看a网站 | 靠逼网站在线观看 | 男人的天堂资源网 |