Casbin
Una libreria di autorizzazione che supporta modelli di controllo degli accessi come ACL, RBAC, ABAC per Golang, Java, C/C++, Node.js, Javascript, PHP, Laravel, Python, .NET (C#), Delphi, Rust, Ruby, Swift (Objective-C), Lua (OpenResty), Dart (Flutter) e Elixir
Modelli di controllo degli accessi ibridi
In Casbin, un modello di controllo degli accessi è astratto in un file CONF basato sul metamodello PERM (Policy, Effect, Request, Matchers). Quindi, passare o aggiornare il meccanismo di autorizzazione per un progetto è semplice come modificare una configurazione.
Archiviazione flessibile delle policy
Oltre alla memoria e ai file, le policy di Casbin possono essere memorizzate in molti luoghi. Attualmente, sono supportate decine di database, da MySQL, Postgres, Oracle a MongoDB, Redis, Cassandra, AWS S3. Consulta l'elenco completo dei supportati al seguente link: adattatori.
Cross-linguaggi e cross-piattaforme
Casbin è implementato in Golang, Java, PHP e Node.js. Tutte le implementazioni condividono la stessa API e comportamenti. Puoi imparare Casbin una volta e usarlo ovunque.
Persistenza dei criteri
In Casbin, the policy storage is implemented as an adapter(aka middleware for Casbin). To keep light-weight, we don't put adapter code in the main library (except the default file adapter). A complete list of Casbin adapters is provided as below. Any 3rd-party contribution on a new adapter is welcomed, please inform us and I will put it in this list:) For details of adapters, please refer to the documentation: adattatori.Esecuzione dei criteri su larga scala
Alcuni adattatori supportano la gestione dei criteri filtrati. Ciò significa che i criteri caricati da Casbin sono un sottoinsieme dei criteri nella memoria di archiviazione in base a un filtro dato. Ciò consente un'efficace applicazione dei criteri in ambienti di grandi dimensioni e multi-tenant, quando l'analisi dell'intero criterio diventa un collo di bottiglia per le prestazioni.Gestore dei ruoli
Il gestore dei ruoli viene utilizzato per gestire la gerarchia dei ruoli RBAC (mappatura utente-ruolo) in Casbin. Un gestore dei ruoli può recuperare i dati dei ruoli dalle regole di policy di Casbin o da fonti esterne come LDAP, Okta, Auth0, Azure AD, ecc. Supportiamo diverse implementazioni di un gestore dei ruoli. Per mantenere leggero il peso, non inseriamo il codice del gestore dei ruoli nella libreria principale (ad eccezione del gestore dei ruoli predefinito). Un elenco completo dei gestori dei ruoli di Casbin è fornito come: gestori-dei-ruoli.Chi sta utilizzando Casbin?
Centinaia di progetti stanno utilizzando Casbin, da aziende affermate del Fortune 500 a nuovi startup di tendenza. Se sei curioso di vedere cosa può essere realizzato con Casbin, dai un'occhiata a queste app!