Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
casbin — Libreria di autorizzazione che applica modelli di controllo degli accessi ACL, RBAC, ABAC e personalizzati, con API RESTful di corrispondenza e gestione delle policy per applicazioni e servizi. | Kitploit
Strumenti/GitHubGitHub/apache/casbin
Autenticazione e AutorizzazioneGestione IdentitàGestione Identità e Accessi (IAM)Sicurezza delle API
GitHubapache/casbin

casbin

Libreria di autorizzazione che applica modelli di controllo degli accessi ACL, RBAC, ABAC e personalizzati, con API RESTful di corrispondenza e gestione delle policy per applicazioni e servizi.

Vedi Repository
20.3k1.8k2 giorni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

Apache Casbin

Lint Build Coverage Status Godoc Release Discord

Novità: sei ancora preoccupato di come scrivere la policy Apache Casbin corretta? Apache Casbin online editor sta arrivando per aiutarti! Provalo su: https://casbin.apache.org/editor/

casbin Logo

Apache Casbin è una libreria open-source potente ed efficiente per il controllo degli accessi in progetti Golang. Supporta l'applicazione dell'autorizzazione basata su vari modelli di controllo degli accessi.

Tutte le lingue supportate da Apache Casbin:

Indice

  • Modelli supportati
  • Come funziona?
  • Caratteristiche
  • Installazione
  • Documentazione
  • Editor online
  • Tutorial
  • Per iniziare
  • Gestione delle policy
  • Persistenza delle policy
  • Coerenza delle policy tra più nodi
  • Role manager
  • Benchmark
  • Esempi
  • Middleware
  • I nostri utilizzatori

Modelli supportati

  1. ACL (Access Control List)
  2. ACL con superutente
  3. ACL senza utenti: particolarmente utile per sistemi che non dispongono di autenticazione o login utente.
  4. ACL senza risorse: in alcuni scenari si può puntare a un tipo di risorse invece che a una singola risorsa utilizzando permessi come write-article, read-log. Questo non controlla l'accesso a un articolo o log specifico.
  5. RBAC (Role-Based Access Control)
  6. RBAC con ruoli delle risorse: sia gli utenti che le risorse possono avere ruoli (o gruppi) allo stesso tempo.
  7. RBAC con domini/tenant: gli utenti possono avere diversi insiemi di ruoli per diversi domini/tenant.
  8. ABAC (Attribute-Based Access Control): zucchero sintattico come resource.Owner può essere usato per ottenere l'attributo di una risorsa.
  9. RESTful: supporta percorsi come /res/*, /res/:id e metodi HTTP come GET, POST, PUT, .

Come funziona?

In Casbin, un modello di controllo degli accessi viene astratto in un file CONF basato sul metamodello PERM (Policy, Effect, Request, Matchers). Passare da un meccanismo di autorizzazione a un altro o aggiornarlo in un progetto è quindi semplice quanto modificare una configurazione. Puoi personalizzare il tuo modello di controllo degli accessi combinando i modelli disponibili. Ad esempio, puoi avere ruoli RBAC e attributi ABAC insieme in un unico modello e condividere uno stesso insieme di regole della policy.

Il modello più semplice e basilare in Casbin è l'ACL. Il CONF del modello ACL è:

root@kitploit:~
# Request definition
[request_definition]
r = sub, obj, act

# Policy definition
[policy_definition]
p = sub, obj, act

# Policy effect
[policy_effect]
e = some(where (p.eft == allow))

# Matchers
[matchers]
m = r.sub == p.sub && r.obj == p.obj && r.act == p.act

Un esempio di policy per il modello ACL è:

root@kitploit:~
p, alice, data1, read
p, bob, data2, write

Ciò significa:

  • alice può leggere data1
  • bob può scrivere data2

Supportiamo anche la modalità multi-linea aggiungendo '\' alla fine:

root@kitploit:~
# Matchers
[matchers]
m = r.sub == p.sub && r.obj == p.obj \
  && r.act == p.act

Inoltre, se stai usando ABAC, puoi provare l'operatore in come segue nell'edizione golang di Casbin (jCasbin e Node-Casbin non sono ancora supportati):

root@kitploit:~
# Matchers
[matchers]
m = r.obj == p.obj && r.act == p.act || r.obj in ('data2', 'data3')

Ma DEVI assicurarti che la lunghezza dell'array sia MAGGIORE di 1, altrimenti causerà un panic.

Per altri operatori, puoi dare un'occhiata a govaluate

Caratteristiche

Cosa fa Apache Casbin:

  1. applica la policy nella forma classica {subject, object, action} o in una forma personalizzata come definita da te; sono supportate sia le autorizzazioni allow che deny.
  2. gestisce l'archiviazione del modello di controllo degli accessi e della sua policy.
  3. gestisce le corrispondenze ruolo-utente e ruolo-ruolo (note anche come gerarchia dei ruoli in RBAC).
  4. supporta il superutente integrato come root o administrator. Un superutente può fare qualsiasi cosa senza permessi espliciti.
  5. include numerosi operatori integrati per supportare il match delle regole. Ad esempio, keyMatch può mappare una chiave di risorsa /foo/bar al pattern /foo*.

Cosa Apache Casbin NON fa:

  1. autenticazione (cioè verificare username e password quando un utente accede)
  2. gestire l'elenco degli utenti o dei ruoli. Credo che sia più comodo per il progetto stesso gestire queste entità. Gli utenti di solito hanno le proprie password e Apache Casbin non è progettato come contenitore di password. Tuttavia, Apache Casbin memorizza la corrispondenza utente-ruolo per lo scenario RBAC.

Installazione

root@kitploit:~
go get github.com/casbin/casbin/v3

Documentazione

https://casbin.apache.org/docs/overview

Editor online

Puoi anche usare l'editor online (https://casbin.apache.org/editor/) per scrivere il tuo modello e la tua policy Casbin nel browser. Offre funzionalità come syntax highlighting e code completion, proprio come un IDE per un linguaggio di programmazione.

Tutorial

https://casbin.apache.org/docs/tutorials

Per iniziare

  1. Crea un enforcer Casbin con un file di modello e un file di policy:

    root@kitploit:~
    e, _ := casbin.NewEnforcer("path/to/model.conf", "path/to/policy.csv")
    

Nota: puoi anche inizializzare un enforcer con una policy nel database invece che in un file; consulta la sezione Persistenza delle policy per i dettagli.

  1. Aggiungi un hook di enforcement al tuo codice subito prima che avvenga l'accesso:

    root@kitploit:~
    sub := "alice" // the user that wants to access a resource.
    obj := "data1" // the resource that is going to be accessed.
    act := "read" // the operation that the user performs on the resource.
    
    if res, _ := e.Enforce(sub, obj, act); res {
        // permit alice to read data1
    } else {
        // deny the request, show an error
    }
    
  2. Oltre al file di policy statico, Apache Casbin fornisce anche API per la gestione dei permessi a runtime. Ad esempio, puoi ottenere tutti i ruoli assegnati a un utente come segue:

    root@kitploit:~
    roles, _ := e.GetImplicitRolesForUser(sub)
    

Consulta le API di gestione delle policy per ulteriori utilizzi.

Gestione delle policy

Apache Casbin fornisce due serie di API per gestire i permessi:

  • Management API: l'API primitiva che fornisce supporto completo per la gestione delle policy di Apache Casbin.
  • RBAC API: un'API più amichevole per RBAC. Questa API è un sottoinsieme della Management API. Gli utenti RBAC possono usare questa API per semplificare il codice.

Forniamo anche una UI basata sul web per la gestione di modelli e policy:

editor di modelli

editor di policy

Persistenza delle policy

https://casbin.apache.org/docs/adapters

Coerenza delle policy tra più nodi

https://casbin.apache.org/docs/watchers

Role manager

https://casbin.apache.org/docs/role-managers

Benchmark

https://casbin.apache.org/docs/benchmark

Esempi

Middleware

Middleware Authz per framework web: https://casbin.apache.org/docs/middlewares

I nostri utilizzatori

https://casbin.apache.org/docs/adopters

Come contribuire

Leggi la guida al contributo.

Collaboratori

Questo progetto esiste grazie a tutte le persone che contribuiscono.

Cronologia stelle

Star History Chart

Licenza

Questo progetto è concesso in licenza secondo la licenza Apache 2.0.

Contatti

Se hai problemi o richieste di funzionalità, contattaci. Le PR sono benvenute.

  • https://github.com/apache/casbin/issues
  • https://discord.gg/S5UjpzGZjN
Scarica lo strumento
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
DELETE
  • Deny-override: sono supportate sia le autorizzazioni allow che deny; deny ha la precedenza su allow.
  • Priorità: le regole della policy possono essere prioritarie come le regole del firewall.
  • ModelloFile del modelloFile della policy
    ACLbasic_model.confbasic_policy.csv
    ACL con superutentebasic_model_with_root.confbasic_policy.csv
    ACL senza utentibasic_model_without_users.confbasic_policy_without_users.csv
    ACL senza risorsebasic_model_without_resources.confbasic_policy_without_resources.csv
    RBACrbac_model.confrbac_policy.csv
    RBAC con ruoli delle risorserbac_model_with_resource_roles.confrbac_policy_with_resource_roles.csv
    RBAC con domini/tenantrbac_model_with_domains.confrbac_policy_with_domains.csv
    ABACabac_model.confN/A
    RESTfulkeymatch_model.confkeymatch_policy.csv
    Deny-overriderbac_model_with_deny.confrbac_policy_with_deny.csv
    Prioritàpriority_model.confpriority_policy.csv