Casbin

Casbin

  • Texte
  • API
  • Redakteur
  • IDE-Plugins
  • Single Sign-On (SSO)
  • Forum
  • Hilfe
  • Blog
  • Pricing
  • Contact Sales
  • Languages iconDeutsch
    • English
    • 中文
    • 한국어
    • Русский
    • Français
    • 日本語
    • Helfen Sie zu übersetzen
  • GitHub

›Modell

Die Grundlagen

  • Übersicht
  • Los geht's
  • So funktioniert es
  • Anleitungen

Modell

  • Unterstützte Modelle
  • Syntax für Modelle
  • Effektor
  • Funktion
  • RBAC
  • RBAC with Pattern
  • RBAC mit Domänen
  • Casbin RBAC v.s. RBAC96
  • ABAC
  • Prioritätsmodell
  • Super-Admin

Speicher

  • Modellspeicher
  • Richtlinien-Speicher
  • Richtlinien-Untermengenladen

Erweiterungen

  • Enforcers
  • Adapter
  • Beobachter
  • Dispatcher
  • Rollen-Manager
  • Middleware
  • GraphQL Middlewares
  • Cloud Native Middlewares

API

  • API-Übersicht
  • Management-API
  • RBAC API
  • RBAC mit Domains API
  • Rollen-Manager-API
  • Datenberechtigungen

Erweiterte Nutzung

  • Mehrfachfachen
  • Benchmarks
  • Leistungsoptimierung
  • Autorisierung von Kubernetes
  • Genehmigung des Service-Mesh durch den Gesandten

Management

  • Admin-Portal
  • Kasbin-Dienst
  • Log- & Fehlerbehandlung
  • Frontend-Nutzung

Redakteur

  • Online-Editor
  • IDE-Plugins

Mehr

  • Unsere Adopter
  • Mitwirken
  • Datenschutzerklärung
  • Nutzungsbedingungen
Translate

Prioritätsmodell

Casbin unterstützt Laststrategien mit Priorität.

Richtlinie mit Priorität laden implizit

Es ist ganz einfach, die Ordnung bestimmt die Priorität, die Politik früher erschienen hat höhere Priorität.

model.conf:

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

Richtlinien mit Priorität explizit laden

Siehe: casbin#550

Der Name des Prioritäts-Tokens in der Definition der Politik muss "Priorität" sein, und der kleinere Prioritätswert hat eine höhere Priorität. Wenn ein nicht-numerisches Zeichen Priorität hat, wird es in der letzten sein, anstatt einen Fehler zu werfen. Nun unterstützt explizite Priorität nur AddPolicy & AddPolicies, falls UpdatePolicy aufgerufen wurde, sollten Sie das Prioritätsattribute nicht ändern.

model.conf:

[request_definition]
r = sub, obj, act

[policy_definition]
p = Priorität, sub, obj, act, eft

[role_definition]
g = _, _

[policy_effect]
e = priority(p. ft) || lehne

[matchers]
m = g(r.sub, p. ub) && 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 erlauben


p, 1, alice, data1, write, allow
p, 1, alice, data1, read, allow
p, 1, bob, data2, lesen, lehne

g, bob, data2_allow_group
g, alice, data1_deny_group

anfragen:

alice, data1, write --> true // für `p, 1, alice, data1, write, write allow` hat die höchste Priorität
bob, data2, read --> false
bob, data2, write --> true // für bob hat die Rolle von `data2_allow_group` welche das Recht hat, Daten zu schreiben, und es gibt keine leugnen Richtlinie mit höherer Priorität 

Richtlinien mit Priorität basierend auf Rolle und BenutzerHierarchie laden

Die geerbte Struktur von Rollen und Benutzern kann nur mehrere Bäume und nicht Graphen. Wenn ein Benutzer mehrere Rollen hat, müssen Sie sicherstellen, dass der Benutzer das gleiche Level in verschiedenen Bäumen hat. Wenn zwei Rollen die gleiche Ebene haben, hat die Politik (die Rolle korrespondierend) eine höhere Priorität. weitere Details siehe casbin#833casbin#831

model.conf:

[request_definition]
r = sub, obj, act

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

[role_definition]
g = _, _

[policy_effect]
e = subjectPriority(p. ft) || lehne

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

policy.csv

p, root, data1, lesen, verweigern
p, admin, data1, lesen, verweigern

p, editor, data1, lesen, verweigern
p, Abonnent, data1, lesen,

p, jane, data1, lesen, verweigern erlauben
p, alice, data1, lesen,

g, admin, root

g, editor, zulassen admin
g, Abonnent, Admin

g, jane, Editor
g, alice, Abonnent 

Anfrage:

jane, data1, read --> true // jane steht ganz unten. Die Priorität ist also höher als der Editor, admin und root
alice, data1, lesen --> true

Die Rollenhierarchie wie folgt:

rote: root
 <unk> <unk> Rolle: admin
    <unk> <unk> Rollen-Editor
    <unk> <unk> <unk> <unk> <unk> Benutzer: jane
    <unk>
    <unk> Rolle: Abonnent
       <unk> <unk> <unk> <unk> Benutzer: john

Die Priorität automatisch folgendermaßen:

role: root # automatische Priorität: 30
 <unk> <unk> Rolle: admin # automatische Priorität: 20
     <unk> <unk> Rolle: Editor # automatische Priorität: 10
     <unk> <unk> Rolle: Abonnent # automatische Priorität: 10
← ABACSuper-Admin →
  • Richtlinie mit Priorität laden implizit
  • Richtlinien mit Priorität explizit laden
  • Richtlinien mit Priorität basierend auf Rolle und BenutzerHierarchie laden
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