Overview
Casbin è una libreria open-source potente ed efficiente per il controllo degli accessi che supporta vari
Applicare un insieme di regole è semplice come elencare soggetti, oggetti e l'azione desiderata consentita (o qualsiasi altro formato in base alle tue esigenze) in un file policy. Questo è sinonimo in tutti i flussi in cui Casbin viene utilizzato. Lo sviluppatore/amministratore ha il controllo completo sul layout, l'esecuzione e le condizioni per l'autorizzazione, che sono impostate tramite il file model. Casbin fornisce un Enforcer per convalidare una richiesta in arrivo in base ai file policy e model dati all'Enforcer.
Linguaggi Supportati da Casbin
Casbin offre supporto per vari linguaggi di programmazione, pronti per essere integrati in qualsiasi progetto e flusso di lavoro:
![]() | ![]() | ![]() | ![]() |
|---|---|---|---|
| Casbin | jCasbin | node-Casbin | PHP-Casbin |
| Pronto per la produzione | Pronto per la produzione | Pronto per la produzione | Pronto per la produzione |
![]() | ![]() | ![]() | |
|---|---|---|---|
| PyCasbin | Casbin.NET | Casbin-CPP | Casbin-RS |
| Pronto per la produzione | Pronto per la produzione | Pronto per la produzione | Pronto per la produzione |
Set di funzionalità per diverse lingue
Lavoriamo sempre al meglio per garantire a Casbin lo stesso set di funzionalità per tutte le lingue. Tuttavia, la realtà non è così bella.
| Funzionalità | Go | Java | Node.js | PHP | Python | C# | Delphi | Rust | C++ | Lua | Dart | Elixir |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Enforcement | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| RBAC | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| ABAC | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Scaling ABAC (eval()) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Adapter | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| Management API | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| RBAC API | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Batch API | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ |
| Filtered Adapter | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ |
| Watcher | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
| Role Manager | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
| Multi-Threading | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| 'in' of matcher | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ |
Nota - ✅ per Watcher o Role Manager significa solo avere l'interfaccia nella libreria principale. Non indica se è disponibile un'implementazione di watcher o role manager.
Cos'è Casbin?
Casbin è una libreria di autorizzazione che può essere utilizzata nei flussi in cui vogliamo che un certo oggetto o entità sia accessibile da un utente specifico o soggetto. Il tipo di accesso, ovvero azione, Questo è il modo in cui Casbin è più ampiamente utilizzato e viene chiamato il "standard"
Casbin è in grado di gestire molti scenari di autorizzazione complessi oltre al flusso standard. Possono essere aggiunti ruoli (RBAC), attributi (ABAC), ecc.
Cosa Fa Casbin
- Applicare la politica nella forma classica
{ soggetto, oggetto, azione }o in una forma personalizzata come hai definito. Sono supportate sia le autorizzazioni di permesso che di negazione. - Gestire la memorizzazione del modello di controllo dell'accesso e della sua politica.
- Gestire i mapping ruolo-utente e i mapping ruolo-ruolo (alias gerarchia dei ruoli in RBAC).
- Supportare utenti super speciali integrati come
rootoamministratore. Un superutente può fare qualsiasi cosa senza permessi espliciti. - Fornire più operatori integrati per supportare la corrispondenza delle regole. Ad esempio,
keyMatchpuò mappare una chiave di risorsa/foo/baral pattern/foo*.
Cosa Casbin NON Fa
- Autenticazione (ovvero verificare
usernameepasswordquando un utente accede) - Gestire l'elenco degli utenti o dei ruoli.
È più conveniente per i progetti gestire i loro elenchi di utenti, ruoli o password. Gli utenti di solito hanno le loro password, e Casbin non è progettato come un contenitore di password. Tuttavia, Casbin memorizza il mapping utente-ruolo per lo scenario RBAC.






