Zum Hauptinhalt springen

Übersicht

Casbin ist eine leistungsstarke und effiziente Open-Source-Zugriffssteuerungsbibliothek, die verschiedene Zugriffskontrollmodelle unterstützt für die Erzwingung der Autorisierung auf dem Board.

Die Durchsetzung einer Reihe von Regeln ist so einfach wie die Auflistung von Themen -Objekte und die gewünschte erlaubte Aktion (oder ein beliebiges anderes Format) in einer Richtlinie Datei. Dies ist Synonym für alle Ströme, in denen Casbin verwendet wird. The developer/administrator has the complete control over the layout, execution and conditions for authorization which is set via the model file. Kasbin stellt einen Enforcer für zur Verfügung, der eine eingehende Anfrage basierend auf den Richtlinien und Modelldateien des Enforcers überprüft.

Sprachen unterstützt von Casbin:

Casbin unterstützt verschiedene Programmiersprachen und kann in jedes Projekt und jeden Workflow integriert werden:

golangjavanodejsphp
CasbinjCasbinnode-CasbinPHP-Casbin
produktionsbereitproduktionsbereitproduktionsbereitproduktionsbereit
pythondotnetc++rosten
PyCasbinCasbin.NETCasbin-CPPCasbin-RS
produktionsbereitproduktionsbereitproduktionsbereitproduktionsbereit

Funktionsumfang für verschiedene Sprachen

Wir arbeiten immer unser Bestes daran, dass Casbin die gleichen Funktionen für alle Sprachen hat. Aber die Realität ist nicht so schön.

FeatureGeheJaltaNode.jsPHPPythonC#JenniferRostC++LuaDartElixir
Durchsetzung
RBAC
ABAC
Scaling ABAC (eval())
Adapter
Management-API
RBAC API
Batch-API
Gefilterter Adapter
Beobachter
Rollen-Manager
Multi-Thread
'in' des Matches

Notiz- ✅ für Watcher oder Rollenmanager bedeutet nur die Schnittstelle in der Core-Bibliothek. Es ist kein Hinweis darauf, ob ein Beobachter oder eine Rollenmanager Implementierung zur Verfügung steht.

Was ist Casbin?

Casbin ist eine Autorisierungsbibliothek, die in Strömen verwendet werden kann, in denen wir wollen, dass ein bestimmtes Objekt oder eine Entität von einem bestimmten Benutzer oder Betreff aufgerufen wird. Die Art des Zugriffs z. Aktion kann gelesen werden, schreiben, Löschen Sie oder jede andere Aktion wie vom Entwickler festgelegt. So wird Casbin am weitesten benutzt und der "Standard" oder der Klassiker { subject, object, action } fließt.

Casbin is capable of handling many complex authorization scenarios other than the standard flow. Es können Rollen (RBAC), Attribute (ABAC) usw. hinzugefügt werden.

Was Casbin macht:

  1. Enforce the policy in the classic { subject, object, action } form or a customized form as you defined. Both allow and deny authorizations are supported.
  2. Behandeln Sie die Speicherung des Zugriffskontrollmodells und seiner Richtlinie.
  3. Verwalten Sie die Rollen-Benutzer-Zuordnungen und Rollen-Rollen-Zuordnungen (aka Rollen-Hierarchie im RBAC).
  4. Support built-in superusers like root or administrator. Ein Superuser kann alles ohne ausdrückliche Berechtigungen tun.
  5. Mehrere eingebaute Operatoren zur Unterstützung der Regelabstimmung. Zum Beispiel keyMatch kann eine Ressourcen-Taste /foo/bar dem Muster /foo* zuordnen.

Was Casbin tut NICHT unter:

  1. Authentication (aka verify username and password when a user logs in)
  2. Liste der Benutzer oder Rollen verwalten.

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