Passer au contenu principal

Casbin

Une bibliothèque d'autorisation qui supporte les modèles de contrôle d'accès tels que ACL, RBAC, ABAC pour Golang, Java, C/C++, Node. s, Javascript, PHP, Laravel, Python, .NET (C#), Delphi, Rust, Ruby, Swift (Objective-C), Lua (OpenResty), Dart (Flutter) et Elixir

Commencer

Modèles de contrôle d'accès hybride

En Casbin, un modèle de contrôle d'accès est résumé dans un fichier CONF basé sur le métamodel PERM (Policy, Effect, Request, Matchers). Donc changer ou mettre à jour le mécanisme d'autorisation d'un projet est aussi simple que modifier une configuration.

Stockage flexible

Outre la mémoire et les fichiers, la politique de Casbin peut être stockée dans beaucoup d'endroits. Actuellement, des dizaines de bases de données sont prises en charge, de MySQL, Postgres, Oracle à MongoDB, Redis, Cassandra, AWS S3. Consultez la liste complète des bases de données à : adaptateurs.

Interlangages et plateformes croisées

Casbin est implémenté dans Golang, Java, PHP et Node.js. Toutes les implémentations partagent la même API et les mêmes comportements. Vous pouvez apprendre Casbin une fois et l'utiliser partout.

Persistance de la politique

À Casbin, le stockage des politiques est implémenté en tant qu'adaptateur (aka middleware pour Casbin). Pour garder le poids léger, nous ne plaçons pas le code de l'adaptateur dans la bibliothèque principale (à l'exception de l'adaptateur de fichier par défaut). Une liste complète des adaptateurs Casbin est fournie ci-dessous. Toute contribution tierce sur un nouvel adaptateur est la bienvenue, merci de nous en informer et je le mettrai dans cette liste:) Pour plus de détails sur les adaptateurs, veuillez vous référer à la documentation: adaptateurs.
Policy Persistence
Policy enforcement at scale

Application de la politique à l'échelle

Certains adaptateurs prennent en charge la gestion des politiques filtrées. Cela signifie que la politique chargée par Casbin est un sous-ensemble de la politique de stockage basée sur un filtre donné. Cela permet une application efficace des politiques dans de grands environnements multilocataires lors de l'analyse de l'ensemble de la politique devient un goulot d'étranglement de performance.

Responsable du rôle

Le gestionnaire de rôle est utilisé pour gérer la hiérarchie des rôles RBAC (cartographie des rôles utilisateurs) dans Casbin. Un gestionnaire de rôle peut récupérer les données du rôle à partir des règles de politique de Casbin ou de sources externes telles que LDAP, Okta, Auth0, Azure AD, etc. Nous supportons différentes implémentations d'un gestionnaire de rôles. Pour rester léger, nous ne plaçons pas le code du gestionnaire de rôle dans la bibliothèque principale (à l'exception du gestionnaire de rôle par défaut). Une liste complète des gestionnaires de rôle de Casbin est fournie sous : gestionnaires de rôle.
Role manager

Qui utilise Casbin?

Des centaines de projets utilisent Casbin, des entreprises établies dans le Fortune 500 à de nouvelles startups. f vous êtes curieux de voir ce qui peut être accompli Casbin, jetez un œil à ces applications!