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

›Speicher

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

Modellspeicher

Anders als die Politik, kann das Modell nur geladen werden, es kann nicht gespeichert werden. Weil wir der Meinung sind, dass das Modell keine dynamische Komponente ist und nicht zur Laufzeit geändert werden sollte so dass wir keine API implementieren, um das Modell in einen Speicher zu speichern.

Die gute Nachricht ist, dass wir drei gleichwertige Möglichkeiten bieten, ein Modell statisch oder dynamisch zu laden:

Modell aus .CONF-Datei laden

Dies ist die häufigste Art Casbin zu benutzen. Es ist einfach für Anfänger zu verstehen und praktisch, wenn Sie das Casbin Team um Hilfe bitten.

Der Inhalt der .CONF Datei examples/rbac_model.conf:

[request_definition]
r = sub, obj, act

[policy_definition]
p = sub, obj, handeln

[role_definition]
g = _, _

[policy_effect]
e = irgendwo (p. ft == allow))

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

Dann können Sie die Modelldatei laden als:

e := casbin.NewEnforcer("examples/rbac_model.conf", "examples/rbac_policy.csv")

Modell aus Code laden

Das Modell kann dynamisch aus Code initialisiert werden anstatt mit .CONF Datei. Hier ist ein Beispiel für das RBAC-Modell:

import (
    "github.com/casbin/casbin/v2"
    "github.com/casbin/v2/model"
    "github.com/casbin/casbin/v2/persist/file-adapter"
)

// Modell vom Go-Code initialisieren
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. ft == allow))")
m.AddDef("m", "m", "g(r.sub, p.sub) && r.obj == p. bj && r.act == p.act")

// Regeln aus dem .CSV-Datei-Adapter laden.
// Ersetzen Sie es mit Ihrem Adapter, um Dateien zu vermeiden.
a := fileadapter.NewAdapter("examples/rbac_policy.csv")

// Erstellt den Durchsetzer.
e := casbin.NewEnforcer(m, a)

Modell aus String laden

Oder Sie laden den gesamten Modelltext aus einem mehrzeiligen String. Das Gute an diesem Weg ist, dass Sie keine Modelldatei pflegen müssen.

import (
    "github.com/casbin/casbin/v2"
    "github.com/casbin/casbin/v2/model"
)

// Initialize the model from a string.
text :=
`
[request_definition]
r = sub, obj, act

[policy_definition]
p = sub, obj, act

[role_definition]
g = _, _

[policy_effect]
e = irgendwo (p. ft == allow))

[matchers]
m = g(r.sub, p. ub) && r.obj == p.obj && r.act == p. ct
`
m, _ := model.NewModelFromString(text)

// Richtlinien aus dem .CSV-Datei-Adapter laden.
// Ersetzen Sie es mit Ihrem Adapter, um Dateien zu vermeiden.
a := fileadapter.NewAdapter("examples/rbac_policy.csv")

// Erstellt den Durchsetzer.
e := casbin.NewEnforcer(m, a)
← Super-AdminRichtlinien-Speicher →
  • Modell aus .CONF-Datei laden
  • Modell aus Code laden
  • Modell aus String 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