Passer au contenu principal

Aperçu

Casbin est une bibliothèque de contrôle d'accès open-source puissante et efficace qui prend en charge divers modèles de contrôle d'accès pour faire respecter l'autorisation sur toute la carte.

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. Le développeur/administrateur a le contrôle complet sur la mise en page, l'exécution et les conditions d'autorisation qui sont définies via le fichier modèle. Casbin fournit un Enforcer pour valider une requête entrante basée sur la politique et les fichiers modèles donnés à l'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

Nous travaillons toujours de notre mieux pour que Casbin ait le même ensemble de fonctionnalités pour toutes les langues. 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- ✅ pour Watcher ou Role Manager, signifie seulement avoir l'interface dans la bibliothèque du noyau. Il n'est pas indicatif de savoir si il y a une implémentation de surveillance ou de gestionnaire de rôle disponible.

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. Par exemple, keyMatch peut associer une clé de ressource /foo/bar au patron /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.