Casbinライブラリレコード

何そのCasbin?

公式の説明:Casbinは強力で効率的なオープンソースであるアクセス制御フレームワークをサポートするために、その著作権管理の仕組みアクセス制御モデルの様々な

アクセス制御のための唯一の責任Casbin。アイデンティティ認証、ID認証を担当するその他の特殊な部品を必要(つまり、ユーザー名、パスワードを確認します)。例えば(JWT-行きます)

 

2つのコアコンセプト:

アクセス制御モデルのモデルと戦略方針。

 

どのように動作します:

Casbin  アクセス制御モデルは   抽象的に基づいています 

PERMメタモデル(政策、効果、リクエスト、マッチャ)[戦略効果、要求マッチング]

(このファイルは、通常は固定されているmodel.conf、)ファイルの。そのため、認証メカニズムとは、設定スイッチを変更したり、単純にプロジェクトをアップグレードします。あなたは利用可能なモデルを組み合わせて、独自のアクセス制御モデル(ACL、RBAC、ABAC)をカスタマイズすることができます。たとえば、ABACでモデルにRBACの役割と属性を取得し、ポリシールールのセットを共有することができます。

最も基本的かつ最も単純なモデルCasbin ACLです。ACLは、モデルのCONFであります:

定義要求#
[request_definition]リクエストの形式カスタマイズ
R&LT =サブ、OBJ、ACT 

#ポリシー定義は、
[policy_definition]ポリシー定義
P =サブ、OBJ、ACTの

#ポリシー効果
[policy_effect] 
E =一部(WHERE(== p.eft許可))

#1のmatcher 
[マッチャー] 
M = r.sub == == p.obj r.obj p.sub && && r.act == p.act

  

次のようにポリシーACLモデルの例としては、以下のとおりです。

P、アリスは、DATA1、読み
P、ボブ、DATA2、書き込み

  

どのように使用するには?

Casbinの決定は、パラメータとしてモデルファイルとポリシーファイルを持っている必要があります作成します。

輸入"github.com/casbin/casbin" 

E:= casbin.NewEnforcer( "パス/ TO / model.conf"、 "パス/ TO / policy.csv")

  

アクセスが発生する前に、フックを強制的にコードを追加します:(このステップでは、アクセス制御をチェックすることですし、その後復帰により操作ごとにオブジェクトを行います)

サブ:=「アリス」//リソースにアクセスしたいユーザ。
OBJ:=「DATA1」//アクセスされようとしているリソース。
行為:=「読み」//操作ユーザーがリソース上で実行されます。

もしe.Enforce(サブ、OBJ、行為)==真{ 
    // DATA1を読むためにアリスを許可
}他{ 
    //、要求を拒否し、エラーを表示
}

  

 

 

参考:https://www.cnblogs.com/xiaohunshi/p/10372881.html

     https://www.cnblogs.com/wang_yb/archive/2018/11/20/9987397.html

おすすめ

転載: www.cnblogs.com/winyh/p/11367927.html