Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
casbin — Autorisierungsbibliothek zur Durchsetzung von ACL-, RBAC-, ABAC- und benutzerdefinierten Zugriffskontrollmodellen mit RESTful-Abgleich- und Policy-Verwaltungs-APIs für Anwendungen und Dienste. | Kitploit
Tools/GitHubGitHub/apache/casbin
Authentifizierung & AutorisierungIdentitätsmanagementIdentitäts- & Zugriffsmanagement (IAM)API-Sicherheit
GitHubapache/casbin

casbin

Autorisierungsbibliothek zur Durchsetzung von ACL-, RBAC-, ABAC- und benutzerdefinierten Zugriffskontrollmodellen mit RESTful-Abgleich- und Policy-Verwaltungs-APIs für Anwendungen und Dienste.

Repository anzeigen
20.3k1.8kvor 2 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

Apache Casbin

Lint Build Coverage Status Godoc Release Discord

News: Machen Sie sich immer noch Sorgen, wie Sie die richtige Apache-Casbin-Richtlinie schreiben? Der Apache Casbin online editor kommt, um zu helfen! Probieren Sie es aus unter: https://casbin.apache.org/editor/

casbin Logo

Apache Casbin ist eine leistungsstarke und effiziente Open-Source-Bibliothek für Zugriffskontrolle in Golang-Projekten. Sie unterstützt die Durchsetzung von Autorisierungen auf der Grundlage verschiedener Zugriffskontrollmodelle.

Alle von Apache Casbin unterstützten Sprachen:

Inhaltsverzeichnis

  • Unterstützte Modelle
  • Wie funktioniert es?
  • Funktionen
  • Installation
  • Dokumentation
  • Online-Editor
  • Tutorials
  • Erste Schritte
  • Richtlinienverwaltung
  • Richtlinienpersistenz
  • Richtlinienkonsistenz zwischen mehreren Knoten
  • Rollenmanager
  • Benchmarks
  • Beispiele
  • Middleware
  • Unsere Anwender

Unterstützte Modelle

  1. ACL (Access Control List)
  2. ACL mit Superuser
  3. ACL ohne Benutzer: besonders nützlich für Systeme, die keine Authentifizierung oder Benutzeranmeldungen haben.
  4. ACL ohne Ressourcen: einige Szenarien zielen möglicherweise auf eine Art von Ressourcen statt auf eine einzelne Ressource ab, indem Berechtigungen wie write-article, read-log verwendet werden. Der Zugriff auf einen bestimmten Artikel oder ein bestimmtes Log wird nicht kontrolliert.
  5. RBAC (Role-Based Access Control)
  6. RBAC mit Ressourcenrollen: Sowohl Benutzer als auch Ressourcen können gleichzeitig Rollen (oder Gruppen) haben.
  7. RBAC mit Domänen/Mandanten: Benutzer können für verschiedene Domänen/Mandanten unterschiedliche Rollensätze haben.
  8. ABAC (Attribute-Based Access Control): Syntaxzucker wie resource.Owner kann verwendet werden, um das Attribut einer Ressource abzurufen.
  9. RESTful: unterstützt Pfade wie /res/*, /res/:id sowie HTTP-Methoden wie GET, POST, , .

Wie funktioniert es?

In Casbin wird ein Zugriffskontrollmodell auf der Grundlage des PERM-Metamodells (Policy, Effect, Request, Matchers) in eine CONF-Datei abstrahiert. Der Wechsel oder das Upgrade des Autorisierungsmechanismus eines Projekts ist daher so einfach wie das Ändern einer Konfiguration. Sie können Ihr eigenes Zugriffskontrollmodell anpassen, indem Sie die verfügbaren Modelle kombinieren. Beispielsweise können Sie RBAC-Rollen und ABAC-Attribute gemeinsam in einem Modell verwenden und einen gemeinsamen Satz von Richtlinienregeln nutzen.

Das grundlegendste und einfachste Modell in Casbin ist ACL. Die CONF-Datei des ACL-Modells lautet:

root@kitploit:~
# Request definition
[request_definition]
r = sub, obj, act

# Policy definition
[policy_definition]
p = sub, obj, act

# Policy effect
[policy_effect]
e = some(where (p.eft == allow))

# Matchers
[matchers]
m = r.sub == p.sub && r.obj == p.obj && r.act == p.act

Eine Beispielrichtlinie für das ACL-Modell sieht wie folgt aus:

root@kitploit:~
p, alice, data1, read
p, bob, data2, write

Das bedeutet:

  • alice kann data1 lesen
  • bob kann data2 schreiben

Wir unterstützen außerdem den Mehrzeilenmodus, indem Sie am Ende '\' anhängen:

root@kitploit:~
# Matchers
[matchers]
m = r.sub == p.sub && r.obj == p.obj \
  && r.act == p.act

Wenn Sie darüber hinaus ABAC verwenden, können Sie den Operator in in der Casbin-golang-Ausgabe wie folgt ausprobieren (jCasbin und Node-Casbin werden noch nicht unterstützt):

root@kitploit:~
# Matchers
[matchers]
m = r.obj == p.obj && r.act == p.act || r.obj in ('data2', 'data3')

Sie SOLLTEN jedoch sicherstellen, dass die Länge des Arrays MEHR als 1 beträgt, da dies sonst einen Panikfehler verursacht.

Weitere Operatoren finden Sie unter govaluate

Funktionen

Was Apache Casbin tut:

  1. die Richtlinie in der klassischen {subject, object, action}-Form oder einer von Ihnen definierten individuellen Form durchsetzen; sowohl Allow- als auch Deny-Autorisierungen werden unterstützt.
  2. die Speicherung des Zugriffskontrollmodells und seiner Richtlinie übernehmen.
  3. die Benutzer-Rollen-Zuordnungen und Rollen-Rollen-Zuordnungen (auch Rollenhierarchie in RBAC genannt) verwalten.
  4. eingebaute Superuser wie root oder administrator unterstützen. Ein Superuser kann ohne explizite Berechtigungen alles tun.
  5. mehrere eingebaute Operatoren zur Unterstützung des Regelabgleichs bereitstellen. Beispielsweise kann keyMatch einen Ressourcenschlüssel /foo/bar auf das Muster /foo* abbilden.

Was Apache Casbin NICHT tut:

  1. Authentifizierung (d. h. die Überprüfung von username und password bei der Anmeldung eines Benutzers)
  2. die Liste der Benutzer oder Rollen zu verwalten. Ich glaube, es ist bequemer, wenn das Projekt selbst diese Entitäten verwaltet. Benutzer haben normalerweise ihre Passwörter, und Apache Casbin ist nicht als Passwortcontainer konzipiert. Apache Casbin speichert jedoch die Benutzer-Rollen-Zuordnung für das RBAC-Szenario.

Installation

root@kitploit:~
go get github.com/casbin/casbin/v3

Dokumentation

https://casbin.apache.org/docs/overview

Online-Editor

Sie können auch den Online-Editor (https://casbin.apache.org/editor/) verwenden, um Ihr Casbin-Modell und Ihre Richtlinie in Ihrem Webbrowser zu schreiben. Er bietet Funktionen wie syntax highlighting und code completion, genau wie eine IDE für eine Programmiersprache.

Tutorials

https://casbin.apache.org/docs/tutorials

Erste Schritte

  1. Erstellen Sie einen neuen Casbin-Enforcer mit einer Modelldatei und einer Richtliniendatei:

    root@kitploit:~
    e, _ := casbin.NewEnforcer("path/to/model.conf", "path/to/policy.csv")
    

Hinweis: Sie können einen Enforcer auch mit einer Richtlinie in der Datenbank anstelle einer Datei initialisieren. Weitere Details finden Sie im Abschnitt Richtlinienpersistenz.

  1. Fügen Sie unmittelbar vor dem Zugriff einen Enforcement-Hook in Ihren Code ein:

    root@kitploit:~
    sub := "alice" // the user that wants to access a resource.
    obj := "data1" // the resource that is going to be accessed.
    act := "read" // the operation that the user performs on the resource.
    
    if res, _ := e.Enforce(sub, obj, act); res {
        // permit alice to read data1
    } else {
        // deny the request, show an error
    }
    
  2. Neben der statischen Richtliniendatei bietet Apache Casbin auch eine API für die Berechtigungsverwaltung zur Laufzeit. Beispielsweise können Sie alle einem Benutzer zugewiesenen Rollen wie folgt abrufen:

    root@kitploit:~
    roles, _ := e.GetImplicitRolesForUser(sub)
    

Weitere Verwendungsmöglichkeiten finden Sie unter APIs zur Richtlinienverwaltung.

Richtlinienverwaltung

Apache Casbin bietet zwei API-Sätze zur Verwaltung von Berechtigungen:

  • Management-API: die grundlegende API, die vollständige Unterstützung für die Apache-Casbin-Richtlinienverwaltung bietet.
  • RBAC-API: eine benutzerfreundlichere API für RBAC. Diese API ist eine Teilmenge der Management-API. RBAC-Benutzer können diese API verwenden, um den Code zu vereinfachen.

Wir bieten außerdem eine webbasierte Benutzeroberfläche für die Modell- und Richtlinienverwaltung:

Model-Editor

Richtlinien-Editor

Richtlinienpersistenz

https://casbin.apache.org/docs/adapters

Richtlinienkonsistenz zwischen mehreren Knoten

https://casbin.apache.org/docs/watchers

Rollenmanager

https://casbin.apache.org/docs/role-managers

Benchmarks

https://casbin.apache.org/docs/benchmark

Beispiele

Middleware

Authz-Middleware für Web-Frameworks: https://casbin.apache.org/docs/middlewares

Unsere Anwender

https://casbin.apache.org/docs/adopters

So können Sie beitragen

Bitte lesen Sie die Beitragsanleitung.

Mitwirkende

Dieses Projekt existiert dank aller Menschen, die mitwirken.

Sternenverlauf

Diagramm des Sternenverlaufs

Lizenz

Dieses Projekt ist unter der Apache-2.0-Lizenz lizenziert.

Kontakt

Wenn Sie Probleme oder Feature-Wünsche haben, kontaktieren Sie uns bitte. PRs sind willkommen.

  • https://github.com/apache/casbin/issues
  • https://discord.gg/S5UjpzGZjN
Tool herunterladen
golangjavanodejsphp
CasbinjCasbinnode-CasbinPHP-Casbin
produktionsreifproduktionsreifproduktionsreifproduktionsreif
pythondotnetc++rust
PyCasbinCasbin.NETCasbin-CPPCasbin-RS
produktionsreifproduktionsreifproduktionsreifproduktionsreif
PUT
DELETE
  • Deny-override: Sowohl Allow- als auch Deny-Autorisierungen werden unterstützt; Deny überschreibt Allow.
  • Priorität: Die Richtlinienregeln können wie Firewall-Regeln priorisiert werden.
  • ModellModelldateiRichtliniendatei
    ACLbasic_model.confbasic_policy.csv
    ACL mit Superuserbasic_model_with_root.confbasic_policy.csv
    ACL ohne Benutzerbasic_model_without_users.confbasic_policy_without_users.csv
    ACL ohne Ressourcenbasic_model_without_resources.confbasic_policy_without_resources.csv
    RBACrbac_model.confrbac_policy.csv
    RBAC mit Ressourcenrollenrbac_model_with_resource_roles.confrbac_policy_with_resource_roles.csv
    RBAC mit Domänen/Mandantenrbac_model_with_domains.confrbac_policy_with_domains.csv
    ABACabac_model.confN/A
    RESTfulkeymatch_model.confkeymatch_policy.csv
    Deny-overriderbac_model_with_deny.confrbac_policy_with_deny.csv
    Prioritätpriority_model.confpriority_policy.csv