Zum Hauptinhalt springen

Overview

Casbin ist eine leistungsstarke und effiziente Open-Source-Zugriffskontrollbibliothek, die verschiedene Zugriffskontrollmodelle zur Durchsetzung der Autorisierung unterstützt.

Die Durchsetzung eines Regelwerks ist so einfach wie das Auflisten von Subjekten, Objekten und der gewünschten erlaubten Aktion (oder einem anderen Format nach Ihren Bedürfnissen) in einer Richtlinien Datei. Dies ist synonym für alle Abläufe, in denen Casbin verwendet wird. Der Entwickler/Administrator hat die volle Kontrolle über das Layout, die Ausführung und die Bedingungen für die Autorisierung, die über die Modell Datei festgelegt werden. Casbin stellt einen Enforcer zur Verfügung, um eine eingehende Anfrage auf Basis der dem Enforcer gegebenen Richtlinien- und Modell-Dateien zu validieren.

Von Casbin unterstützte Sprachen

Casbin bietet Unterstützung für verschiedene Programmiersprachen, bereit zur Integration in jedes Projekt und Workflow:

golangjavanodejsphp
CasbinjCasbinnode-CasbinPHP-Casbin
ProduktionsbereitProduktionsbereitProduktionsbereitProduktionsbereit
pythondotnetc++rust
PyCasbinCasbin.NETCasbin-CPPCasbin-RS
ProduktionsbereitProduktionsbereitProduktionsbereitProduktionsbereit

Funktionsumfang für verschiedene Sprachen

Wir arbeiten stets daran, dass Casbin für alle Sprachen den gleichen Funktionsumfang bietet. Die Realität ist jedoch nicht so schön.

FunktionGoJavaNode.jsPHPPythonC#DelphiRustC++LuaDartElixir
Enforcement
RBAC
ABAC
Scaling ABAC (eval())
Adapter
Management API
RBAC API
Batch API
Filtered Adapter
Watcher
Role Manager
Multi-Threading
'in' of matcher

Hinweis - ✅ für Watcher oder Role Manager bedeutet nur, dass die Schnittstelle in der Kernbibliothek vorhanden ist. Es ist nicht aussagekräftig, ob eine Watcher- oder Role-Manager-Implementierung verfügbar ist.

Was ist Casbin?

Casbin ist eine Autorisierungsbibliothek, die in Abläufen verwendet werden kann, in denen wir möchten, dass ein bestimmtes Objekt oder eine Entität von einem spezifischen Benutzer oder Subjekt zugegriffen wird. Die Art des Zugriffs, d.h. Aktion, kann lesen, schreiben, löschen oder jede andere vom Entwickler festgelegte Aktion sein. So wird Casbin am häufigsten verwendet und es wird der "Standard" oder klassische { Subjekt, Objekt, Aktion } Ablauf genannt.

Casbin ist in der Lage, viele komplexe Autorisierungsszenarien zu bewältigen, die über den Standardablauf hinausgehen. Es können Rollen (RBAC), Attribute (ABAC), usw. hinzugefügt werden.

Was Casbin macht

  1. Durchsetzung der Richtlinie in der klassischen { Subjekt, Objekt, Aktion } Form oder einer von Ihnen definierten benutzerdefinierten Form. Sowohl Zulassungs- als auch Verweigerungsautorisierungen werden unterstützt.
  2. Verwaltung der Speicherung des Zugriffskontrollmodells und seiner Richtlinie.
  3. Verwaltung der Zuordnungen von Rollen zu Benutzern und von Rollen zu Rollen (auch Rollenhierarchie in RBAC genannt).
  4. Unterstützung von eingebauten Superbenutzern wie root oder administrator. Ein Superbenutzer kann alles tun, ohne explizite Berechtigungen.
  5. Bietet mehrere eingebaute Operatoren zur Unterstützung der Regelabgleichung. Zum Beispiel kann keyMatch einen Ressourcenschlüssel /foo/bar dem Muster /foo* zuordnen.

Was Casbin NICHT macht

  1. Authentifizierung (d.h. Überprüfung von Benutzername und Passwort beim Einloggen eines Benutzers)
  2. Verwaltung der Liste von Benutzern oder Rollen.

Es ist für Projekte bequemer, ihre Listen von Benutzern, Rollen oder Passwörtern zu verwalten. Benutzer haben in der Regel ihre Passwörter und Casbin ist nicht als Passwortcontainer konzipiert. Casbin speichert jedoch die Zuordnung von Benutzern zu Rollen für das RBAC-Szenario.