何その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