Casbin

Casbin

  • ドキュメント
  • API
  • エディター
  • IDE プラグイン
  • Single Sign-On (SSO)
  • フォーラム
  • ヘルプ
  • ブログ
  • Pricing
  • Contact Sales
  • Languages icon日本語
    • English
    • 中文
    • 한국어
    • Русский
    • Français
    • Deutsch
    • 翻訳に協力する
  • GitHub

›モデル

基本

  • 概要
  • はじめよう
  • 仕組み
  • チュートリアル

モデル

  • サポートされるモデル
  • モデルの構文
  • エフェクト
  • 関数
  • RBAC
  • RBAC with Pattern
  • ドメイン付きRBAC
  • Casbin RBAC v.s. RBAC96
  • ABAC
  • 優先モデル
  • スーパー管理者

ストレージ

  • モデル ストレージ
  • ポリシーストレージ
  • ポリシーサブセットの読み込み

拡張

  • Enforcers
  • アダプター
  • Watchers
  • 派遣者
  • ロールマネージャー
  • ミドルウェア
  • GraphQL Middlewares
  • Cloud Native Middlewares

API

  • API の概要
  • 管理API
  • RBAC API
  • Domains API による RBAC
  • RoleManager API
  • データ権限

高度な使い方

  • マルチスレッド
  • Benchmarks
  • パフォーマンス最適化
  • Kubernetes の承認
  • Envoyによるサービスメッシュの承認

管理

  • 管理者ポータル
  • カスビンサービス
  • ログとエラー処理
  • フロントエンドの使用法

エディター

  • オンラインエディター
  • IDE プラグイン

もっと見る

  • Adopters
  • コントリビューション
  • プライバシーポリシー
  • 利用規約
Translate

優先モデル

Casbinは優先度の負荷ポリシーをサポートしています。

優先度付き負荷ポリシー

それは非常に簡単です、順序が優先順位を決定し、以前に登場したポリシーはより高い優先順位を持っています。

model.conf:

[policy_effect]
e = priority(p.eft) || 否定する

優先度付き負荷ポリシー

また参照: casbin#550

ポリシー定義の優先度トークン名は "priority" でなければなりません。小さい優先度値はより高い優先度を持ちます。 優先度に数値でない文字がある場合は、エラーを投げるのではなく、最後になります。 今、明示的な優先度のみサポート AddPolicy & AddPolicy, もし UpdatePolicy が呼び出された場合、priority 属性を変更するべきではありません。

model.conf:

[request_definition]
r = sub, obj, act

[policy_definition]
p = priority, sub, obj, act, eft

[role_definition]
g = _, _

[policy_effect]
e = priority(p.eft) || deny

[matchers]
m = g(r.sub, p.sub) && r.obj == p.obj && r.act == p.act

policy.csv

p, 10, data1_deny_group, data1, read, deny
p, 10, data1_deny_group, data1, write, deny
p, 10, data2_allow_group, data2, read, allow
p, 10, data2_allow_group, data2, write, allow


p, 1, alice, data1, write, allow
p, 1, alice, data1, read, allow
p, 1, bob, data2, read, deny

g, bob, data2_allow_group
g, alice, data1_deny_group

リクエスト:

alice, data1, write --> true // for `p, 1, alice, data1, write, allow` has highest priority
bob, data2, read --> false
bob, data2, write --> true // for bob has role of `data2_allow_group` which has right to write data2, and there's no deny policy with higher priority 

ロールとユーザ階層に基づく優先度のあるポリシーの読み込み

ロールとユーザーの継承された構造は、グラフではなく複数のツリーのみとなります。 1つのユーザーが複数のロールを持つ場合は、ユーザーが異なるツリーで同じレベルを持っていることを確認する必要があります。 2つのロールが同じレベルにある場合、ポリシー(ロール対応)が優先されます。 詳細も参照してください casbin#833、casbin#831

model.conf:

[request_definition]
r = sub, obj, act

[policy_definition]
p = sub, obj, act, eft

[role_definition]
g = _, _

[policy_effect]
e = subjectPriority(p.eft) || deny

[matchers]
m = g(r.sub, p.sub) && r.obj == p.obj && r.act == p.act 

policy.csv

p, root, data1, read, deny
p, admin, data1, read, deny

p, editor, data1, read, deny
p, subscriber, data1, read, deny

p, jane, data1, read, allow
p, alice, data1, read, allow

g, admin, root

g, editor, admin
g, subscriber, admin

g, jane, editor
g, alice, subscriber 

リクエスト:

jane, data1, read --> true // jane is at the bottom,so priority is higher than editor, admin and root
alice, data1, read --> true

次のようなロール階層:

root
 └─ role: admin
    ├─ role editor
    ├─ user: jane
    {
    ├─ role: subscriber
       └─ user: John

優先度は次のようになります。

role: root # auto priority: 30
 └─ role: admin # auto priority: 20
     ├─ role: editor # auto priority: 10
     ├─ role: subscriber # auto priority: 10
← ABACスーパー管理者 →
  • 優先度付き負荷ポリシー
  • 優先度付き負荷ポリシー
  • ロールとユーザ階層に基づく優先度のあるポリシーの読み込み
Casbin
Docs
Getting StartedManagement APIRBAC APIMiddlewares
Community
Who's using Casbin?Stack Overflow
Casbin          jCasbin
Node-Casbin   PHP-CasbinPyCasbin          Casbin.NETCasbin-CPP        Casbin-RS
Follow @casbinHQ
Copyright © 2022 Casbin Organization