<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] ## 常用配置文件 | Model | Model file | Policy file | | --- | --- | --- | | ACL | [basic\_model.conf](https://github.com/casbin/casbin/blob/master/examples/basic_model.conf) | [basic\_policy.csv](https://github.com/casbin/casbin/blob/master/examples/basic_policy.csv) | | 具有超級用戶的ACL | [basic\_model\_with\_root.conf](https://github.com/casbin/casbin/blob/master/examples/basic_with_root_model.conf) | [basic\_policy.csv](https://github.com/casbin/casbin/blob/master/examples/basic_policy.csv) | | 沒有用戶的ACL | [basic\_model\_without\_users.conf](https://github.com/casbin/casbin/blob/master/examples/basic_without_users_model.conf) | [basic\_policy\_without\_users.csv](https://github.com/casbin/casbin/blob/master/examples/basic_without_users_policy.csv) | | 沒有資源的ACL | [basic\_model\_without\_resources.conf](https://github.com/casbin/casbin/blob/master/examples/basic_without_resources_model.conf) | [basic\_policy\_without\_resources.csv](https://github.com/casbin/casbin/blob/master/examples/basic_without_resources_policy.csv) | | RBAC | [rbac\_model.conf](https://github.com/casbin/casbin/blob/master/examples/rbac_model.conf) | [rbac\_policy.csv](https://github.com/casbin/casbin/blob/master/examples/rbac_policy.csv) | | 支持資源角色的RBAC | [rbac\_model\_with\_resource\_roles.conf](https://github.com/casbin/casbin/blob/master/examples/rbac_with_resource_roles_model.conf) | [rbac\_policy\_with\_resource\_roles.csv](https://github.com/casbin/casbin/blob/master/examples/rbac_with_resource_roles_policy.csv) | | 支持域/租戶的RBAC | [rbac\_model\_with\_domains.conf](https://github.com/casbin/casbin/blob/master/examples/rbac_with_domains_model.conf) | [rbac\_policy\_with\_domains.csv](https://github.com/casbin/casbin/blob/master/examples/rbac_with_domains_policy.csv) | | RESTful | [keymatch\_model.conf](https://github.com/casbin/casbin/blob/master/examples/keymatch_model.conf) | [keymatch\_policy.csv](https://github.com/casbin/casbin/blob/master/examples/keymatch_policy.csv) | 1. ACL (Access Control List, 訪問控制列表): 只有人員與權限,沒有角色參與管理 1. RBAC (基于角色的訪問控制) 1. 沒有用戶的 ACL: 對于沒有身份驗證或用戶登錄的系統尤其有用。 1. 沒有資源的 ACL: 某些場景可能只針對資源的類型, 而不是單個資源, 諸如 write-article, read-log等權限。 它不控制對特定文章或日志的訪問。 1. 支持資源角色的RBAC:資源也帶上資源的角色 1. RESTful: 支持路徑, 如 /res/*, /res/: id 和 HTTP 方法, 如 GET, POST, PUT, DELETE ## 說明 舉例對 **rbac_model.conf** 的理解 ``` # Request定義 [request_definition] r = sub, obj, act # 策略定義 [policy_definition] p = sub, obj, act # 角色定義 [role_definition] g = _, _ [policy_effect] e = some(where (p.eft == allow)) # 匹配器定義 [matchers] m = g(r.sub, p.sub) && r.obj == p.obj && r.act == p.act ``` 說明 ``` [request_definition] 定義請求由三部分組成 訪問用戶的用戶 Subject , 訪問的資源 Object 訪問的動作 Action [policy_definition] 定策略的格式 , 參數的基本意思和定義請求的相同 ,定義好了策略格式,那么對于策略(Policy)的具體描述可以存放在一個以 .csv 作為后綴的文件中 [role_definition] 是RBAC角色繼承關系的定義 ,此處的 _, _ 表示 前項繼承后項角色的權限 [policy_effect] e = some(where (p.eft == allow)) : 表示任意一條Policy策略滿足那么結果就為allow [matchers] m = g(r.sub, p.sub) && r.obj == p.obj && r.act == p.act : 定義了策略匹配者。匹配者是一組表達式。它定義了如何根據請求來匹配策略規則,匹配表達式的寫法比較靈活根據具體需求來編寫即可. 而此處的表達式意思是 ,檢測用戶角色 && 檢測用戶訪問的資源 &&檢測用戶的動作 (&&表示并且關系,當然也有其他邏輯運算符 ||,!等) ``` 對 **rbac_Policy_example.csv** 的說明 ``` g, coder, root g, zhangsan coder p, root,api/v1/ping,GET p, coder,api/v1/pong,GET g, lisi, manager p, manager, api/v1/user,POST ``` 說明 ``` coder是root的角色 zhangsan是coder的角色 root 可以訪問 api/v1/ping 資源 通過GET動作,那么coder , zhangsan也可以訪問 coder可以訪問 api/v1/pong 資源 通過GET動作,zhangsan也能訪問 lisi是manager的角色 manager可以訪問 api/v1/user資源通過POST動作,lisi也可以訪問 ``` ## 獲取Model 的方式 ### 從 .CONF 文件中加載 model ``` e := casbin.NewEnforcer("examples/rbac_model.conf", "examples/rbac_policy.csv") ``` ### 從代碼加載 model ``` import ( "github.com/casbin/casbin/v2" "github.com/casbin/casbin/v2/model" "github.com/casbin/casbin/v2/persist/file-adapter" ) // 從Go代碼初始化模型 m := model.NewModel() m.AddDef("r", "r", "sub, obj, act") m.AddDef("p", "p", "sub, obj, act") m.AddDef("g", "g", "_, _") m.AddDef("e", "e", "some(where (p.eft == allow))") m.AddDef("m", "m", "g(r.sub, p.sub) && r.obj == p.obj && r.act == p.act") // 從CSV文件adapter加載策略規則 // 使用自己的 adapter 替換。 a := fileadapter.NewAdapter("examples/rbac_policy.csv") // 創建enforcer e := casbin.NewEnforcer(m, a) ``` ### 從字符串加載的 model ``` import ( "github.com/casbin/casbin/v2" "github.com/casbin/casbin/v2/model" ) // 從字符串初始化模型 text := ` [request_definition] r = sub, obj, act [policy_definition] p = sub, obj, act [role_definition] g = _, _ [policy_effect] e = some(where (p.eft == allow)) [matchers] m = g(r.sub, p.sub) && r.obj == p.obj && r.act == p.act ` m, _ := model.NewModelFromString(text) // 從CSV文件adapter加載策略規則 // 使用自己的 adapter 替換 a := fileadapter.NewAdapter("示例/rbac_policy.csv") // 創建執行者。 e := casbin.NewEnforcer(m, a) ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看