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
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.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.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!