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

›Erweiterte Nutzung

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

Leistungsoptimierung

Wenn Sie in einer Produktionsumgebung mit Millionen von Benutzern oder Berechtigungen angewendet werden, können Sie bei der Durchsetzung von Casbin auf Performance-Downgrade stoßen, es gibt in der Regel zwei Ursachen:

Hoher Lautstärkeverkehr

Die Anzahl der anstehenden Anfragen pro Sekunde ist zu groß, z.B. 10.000 Anfrage/s für eine einzelne Casbin-Instanz. In diesem Fall reicht eine einzige Casbin-Instanz normalerweise nicht aus, um alle Anfragen zu bearbeiten. Es gibt zwei mögliche Lösungen:

  1. Verwenden Sie Multithreading um mehrere Casbin-Instanzen zu aktivieren, so dass Sie alle Kerne des Computers vollständig nutzen können. Siehe Details auf: Multi-Threading.

  2. Verteilen Sie Casbin-Instanzen in einem Cluster (mehrere Maschinen). Verwenden Sie Watcher um sicherzustellen, dass alle Casbin-Instanzen konsistent sind. Siehe Details auf: Beobachter.

note

Du kannst die oben genannten Methoden gleichzeitig verwenden, z. B. Casbin in einem 10-Maschinen-Cluster einsetzen. Jede Maschine hat 5 Fäden gleichzeitig, um die Durchsetzung von Casbin-Anfragen zu bedienen.

Hohe Anzahl an Regeln für Richtlinien

Millionen von politischen Regeln können in einer Wolke oder mehreren Mietern erforderlich sein. Jeder Durchsetzungsruf oder sogar das Laden der Regeln zum ersten Zeitpunkt ist sehr langsam. Derartige Fälle können in der Regel auf verschiedene Weise gemildert werden:

  1. Ihr Casbin-Modell oder -Politik ist nicht gut konzipiert. Ein gut geschriebenes Modell und Richtlinie abstrahiert die duplizierte Logik für jeden Benutzer/Mieter und reduziert die Anzahl der Regeln auf ein sehr kleines Level (< 100): e. ., können Sie einige Standardregeln für alle Instanzen teilen und die Benutzer ihre Regeln später anpassen lassen. Benutzerdefinierte Regeln können die Standardregeln überschreiben. Wenn Sie noch Fragen haben, senden Sie bitte GitHub an die Casbin Repos.

  2. Teilen Sie, damit ein Casbin-Vollstrecker nur eine kleine Reihe von Richtlinien-Regeln laden kann, z. enforcer_0 dient nur für tenant_0 bis tenant_99, enforcer_1 dient nur für tenant_100 bis tenant_199. Um nur eine Teilmenge aller Richtlinien-Regeln zu laden, siehe Details unter: Richtlinien-Untermengenladen.

  3. Erteilen Sie RBAC Rollen anstelle von Benutzern direkt Rechte. Casbin's RBAC wird durch einen Rollenvererbungsbaum (als Cache) implementiert. Da ein Benutzer wie Alice, verwendet Casbin nur O(1) Zeit, um den RBAC Baum nach Rollenbenutzer-Beziehung abzufragen und durchzusetzen. Wenn sich Ihre g Regeln nicht oft ändern, muss der RBAC Baum nicht aktualisiert werden. Siehe Details auf dieser Wörterbuch: https://github.com/casbin/casbin/issues/681#issuecomment-763801583

note

Du kannst die oben genannten Methoden gleichzeitig versuchen. :::

← BenchmarksAutorisierung von Kubernetes →
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