Vai al contenuto principale

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:

golangjavanodejsphp
CasbinjCasbinnode-CasbinPHP-Casbin
Pronto per la produzionePronto per la produzionePronto per la produzionePronto per la produzione
pythondotnetc++rust
PyCasbinCasbin.NETCasbin-CPPCasbin-RS
Pronto per la produzionePronto per la produzionePronto per la produzionePronto 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àGoJavaNode.jsPHPPythonC#DelphiRustC++LuaDartElixir
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

  1. 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.
  2. Gestire la memorizzazione del modello di controllo dell'accesso e della sua politica.
  3. Gestire i mapping ruolo-utente e i mapping ruolo-ruolo (alias gerarchia dei ruoli in RBAC).
  4. Supportare utenti super speciali integrati come root o amministratore. Un superutente può fare qualsiasi cosa senza permessi espliciti.
  5. Fornire più operatori integrati per supportare la corrispondenza delle regole. Ad esempio, keyMatch può mappare una chiave di risorsa /foo/bar al pattern /foo*.

Cosa Casbin NON Fa

  1. Autenticazione (ovvero verificare username e password quando un utente accede)
  2. 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.