Passer au contenu principal

Aperçu

Casbin is a powerful and efficient open-source access control library that supports various access control models for enforcing authorization across the board.

Appliquer un ensemble de règles est aussi simple que lister des sujets, et l'action souhaitée (ou tout autre format selon vos besoins) dans un fichier de politique. Cela est synonyme à travers tous les flux utilisés par Casbin. The developer/administrator has the complete control over the layout, execution and conditions for authorization which is set via the model file. Casbin provides an Enforcer for validating an incoming request based on the policy and model files given to the Enforcer.

Langues prises en charge par Casbin:

Casbin fournit un support pour divers langages de programmation, prêts à être intégrés dans n'importe quel projet et flux de travail:

golangjavanodejsphp
CasbinjCasbinnode-CasbinPHP-Casbin
prêt à la productionprêt à la productionprêt à la productionprêt à la production
pythondotnetc++rouille
PyCasbinCasbin.NETCasbin-CPPCasbin-RS
prêt à la productionprêt à la productionprêt à la productionprêt à la production

Ensemble de fonctionnalités pour différentes langues

We are always working our best to make Casbin have the same set of features for all languages. Mais la réalité n'est pas si belle.

FonctionnalitésAllerJavaNode.jsPHPPythonC#DelphiRouilleC++LuaFléchetteElixir
Application de la loi
RBAC
ABAC
Scaling ABAC (eval())
Adaptateur
API de gestion
RBAC API
API par lots
Adaptateur filtré
Observateur
Responsable des rôles
Multi-Threading
'in' du matcher

Note- ✅ for Watcher or Role Manager only means having the interface in the core library. It is not indicative of whether there is a watcher or role manager implementation available.

Qu'est-ce que Casbin?

Casbin est une bibliothèque d'autorisation qui peut être utilisée dans des flux où nous voulons qu'un certain objet `ou entité soit accessible par un utilisateur spécifique ousujet. Le type d'accès i.e. l'actionpeut être _lue_, _écrire_, _supprimer_ ou toute autre action telle que définie par le développeur. C'est ainsi que Casbin est le plus largement utilisé et son appelé le flux "standard" ou classique{ subject, object, action }`.

Casbin is capable of handling many complex authorization scenarios other than the standard flow. Il peut y avoir l'ajout de rôles (RBAC), attributs (ABAC) etc.

Ce que Casbin fait:

  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. Gérer le stockage du modèle de contrôle d'accès et de sa politique.
  3. Gérer les mappings des rôles utilisateur et les mappings des rôles (aka la hiérarchie des rôles dans RBAC).
  4. Support built-in superusers like root or administrator. Un super-utilisateur peut faire quoi que ce soit sans autorisation explicite.
  5. Plusieurs opérateurs intégrés pour supporter la correspondance des règles. For example, keyMatch can map a resource key /foo/bar to the pattern /foo*.

Ce que Casbin fait PAS:

  1. Authentication (aka verify username and password when a user logs in)
  2. Gérer la liste des utilisateurs ou des rôles.

Il est plus pratique pour le projet de gérer leur liste d'utilisateurs, de rôles ou de mots de passe. Les utilisateurs ont généralement leurs mots de passe, et Casbin n'est pas conçu comme un conteneur de mot de passe. Cependant, Casbin stocke la cartographie des rôles des utilisateurs pour le scénario de la RBAC.