In base all'attività su GitHub, alla frequenza degli aggiornamenti e al modello di implementazione, ho stilato una lista degli 8 migliori strumenti RBAC open source che aiutano le organizzazioni a limitare l'accesso al sistema concedendo agli utenti permessi e privilegi.
Questo elenco comprende 8 strumenti RBAC open source suddivisi in tre categorie: librerie di autorizzazione generiche e piattaforme di identità con supporto RBAC , e strumenti di autorizzazione specifici per Kubernetes.
Strumenti RBAC open source basati sulle stelle di GitHub
Selezione e smistamento degli strumenti:
- Numero di recensioni: oltre 300 stelle su GitHub.
- Rilascio dell'aggiornamento: almeno un aggiornamento è stato rilasciato la scorsa settimana.
- Ordinamento: i fornitori sono ordinati in base al numero di stelle su GitHub, in ordine decrescente.
Casdoor
Casdoor è una piattaforma di Identity Access Management (IAM) che gestisce l'autenticazione e il controllo degli accessi basato sui ruoli (RBAC) tramite un'interfaccia web, supportando OAuth 2.0, Workspace, Active Directory e Kerberos.
Figura 1: Illustrazione dell'autenticazione tramite comunicazione
Fonte: Casdoor 1
Ruoli e autorizzazioni vengono assegnati a oggetti predefiniti, come le applicazioni, o a comportamenti di accesso personalizzati; gli amministratori strutturano gruppi e gruppi virtuali in modo da rispecchiare la gerarchia di autorità dell'organizzazione.
La principale differenza pratica rispetto agli altri strumenti di questo elenco è il supporto multiprotocollo in un'unica implementazione: Casdoor è in grado di collegare ambienti Active Directory legacy con moderne applicazioni OAuth 2.0 senza la necessità di un ulteriore livello di adattamento. La configurazione è basata su interfaccia utente anziché su file, il che limita l'integrazione con GitOps rispetto a strumenti come Cerbos o Casbin. I team che necessitano di una gestione programmatica delle policy tramite controllo di versione troveranno l'approccio "web-first" di Casdoor un limite.
Zitadel
ZITADEL è una piattaforma open-source per la gestione delle identità, focalizzata sul multi-tenancy B2B: ogni organizzazione cliente gestisce in modo indipendente il proprio pool di utenti, i ruoli e il set di autorizzazioni.
Protocolli supportati:
- Connessione OpenID
- OAuth 2.x
- SAML 2
Video 1: Console amministratore Zitadel
Fonte: Zitadel 2
Approccio all'implementazione
Gli amministratori integrano il pacchetto RBAC e assegnano i ruoli di autorizzazione dalla console ZITADEL. Le autorizzazioni vengono assegnate tramite API.
Tipologie di ruolo:
- Posizioni specifiche per ciascuna applicazione (amministrazione, contabilità, gestione del personale, risorse umane)
- Ruoli manageriali specifici di ZITADEL (ORG_OWNER, IAM_OWNER)
Esempio: Credenziali del responsabile delle risorse umane David Wallace che mostrano la ricerca di sovvenzioni gestionali.
Figura 2: Ricerca di sovvenzioni gestionali a Zitadel
Fonte: Zitadel 3
A chi è destinato: Organizzazioni che gestiscono portali clienti B2B e necessitano di un'architettura multi-tenant con accesso sicuro e funzionalità self-service.
Vantaggio: combina la gestione delle identità con il controllo degli accessi basato sui ruoli (RBAC) in un'unica piattaforma. Riduce la proliferazione di strumenti.
Cerbos
Cerbos è un livello di autenticazione che consente agli utenti di definire regole di controllo degli accessi per le risorse dell'applicazione.
Capacità:
- Collabora con i colleghi per creare e condividere policy in ambienti privati.
- Distribuisci gli aggiornamenti delle policy di sicurezza di rete all'intera infrastruttura PDP (Packet Data Protocol).
- Crea pacchetti di policy personalizzati per l'autorizzazione lato client o tramite browser.
Figura 3: Come Cerbos si integra con la tua applicazione
Fonte: Cerbos 4
Permesso – Opale
OPAL (Open Policy Administration Layer) è un livello amministrativo per Open Policy Agent (OPA) che rileva le modifiche alle policy e ai dati in tempo reale e invia aggiornamenti live alle istanze OPA distribuite senza richiedere un riavvio. Gli amministratori aggiornano gli attributi del ruolo utente; tali attributi vengono trasferiti al database di backend e resi disponibili al motore decisionale di OPA. La funzione permit.check() valuta il livello di accesso di un utente rispetto alla policy corrente.
Video: Verifica dei permessi utente nell'interfaccia utente con Opal
Fonte: Permit.io 5
Requisito tecnico: richiede l'implementazione di OPA. OPAL è un livello amministrativo, non una soluzione autonoma.
Fairwinds – Responsabile RBAC
Fairwinds RBAC Manager automatizza l'associazione dei ruoli tra i namespace di Kubernetes. Anziché creare associazioni di ruoli individuali in ogni namespace per un utente che necessita di accesso tra namespace, RBAC Manager gestisce tali associazioni da un'unica configurazione dichiarativa.
Esempio di base
Un singolo utente, Joe, necessita dell'accesso in modalità "modifica" allo spazio dei nomi "web". RBAC Manager crea associazioni di ruoli che consentono l'accesso in modalità modifica allo spazio dei nomi web.
Figura 4: Associazione dei ruoli con Fairwinds – RBAC Manager
Fonte: Fairwinds 6
Lo strumento opera a livello del cluster Kubernetes e non ha alcun effetto sulle decisioni di autorizzazione a livello di applicazione. Il suo valore risiede nella riduzione delle discrepanze di configurazione in ambienti in cui, altrimenti, centinaia di combinazioni namespace-utente dovrebbero essere tracciate manualmente.
OpenFGA
OpenFGA è un motore di autorizzazione open-source basato sul controllo degli accessi basato sulle relazioni (ReBAC), ispirato al sistema di autorizzazione interno Zanzibar di Google. Anziché assegnare direttamente i permessi ai ruoli, OpenFGA modella l'accesso attraverso le relazioni tra utenti e oggetti.
Con OpenFGA, gli amministratori possono:
- Scrivi un modello di autorizzazione
- Scrivi le tuple di relazione
- Eseguire i controlli di autorizzazione
- Aggiungere l'autenticazione al loro server OpenFGA
Ad esempio, per verificare se l'utente "user:anne" di tipo utente ha una relazione "lettore" con l'oggetto "document:2021-budget", gli amministratori possono scrivere tuple per testare le API.
Pertanto, la query nella figura restituirà sempre { "allowed": true } se l'utente imposta "document:2021-budget#reader" con la relazione "reader" con "document:2021-budget".
Figura 5: Interrogazione con tuple contestuali
Fonte: OpenFGA 7
Casbin Net
Casbin è una libreria di autorizzazione disponibile in Go, Java, Node.js, Python, .NET, Rust, PHP ed Elixir. Supporta ACL, RBAC e ABAC tramite una definizione del modello basata su file di configurazione: il modello di controllo degli accessi è espresso in un file CONF utilizzando il metamodello PERM (Policy, Effect, Request, Matchers) e il passaggio da un modello all'altro richiede solo una modifica della configurazione, senza dover intervenire sul codice dell'applicazione.
Per RBAC, Casbin memorizza le mappature utente-ruolo e supporta una gerarchia di ruoli con profondità configurabile (massimo predefinito: 10 livelli). L'API RBAC fornisce un'interfaccia di livello superiore per le operazioni comuni; per le regole basate sugli attributi, le condizioni possono essere valutate direttamente rispetto alle proprietà delle risorse o degli utenti nell'espressione del matcher.
Figura 6: Creazione di un elenco di controllo degli accessi (ACL) basato sui ruoli con Casbin
Fonte: Casbin 8
Il che significa:
- Alice sa leggere i dati1
- Bob può scrivere dati2
Perché la tua organizzazione dovrebbe utilizzare strumenti RBAC?
Le statistiche sulla sicurezza di rete mostrano che oltre 6 milioni di record di dati sono stati esposti a livello globale a causa di violazioni dei dati nel primo trimestre del 2023. L'implementazione di una logica convenzionale basata sui ruoli è un metodo efficace per controllare l'accesso degli utenti non autorizzati alle risorse aziendali vitali; tuttavia, la gestione manuale di centinaia di istruzioni condizionali può richiedere molto tempo.
I team di sicurezza possono migliorare le proprie strategie di protezione integrando strumenti centralizzati open-source di controllo degli accessi basato sui ruoli (RBAC) con i sistemi di gestione delle identità e degli accessi (IAM). Ciò garantisce che solo gli utenti autorizzati possano accedere alle risorse sensibili, migliorando la governance degli accessi.
Inoltre, implementando la microsegmentazione , è possibile applicare le policy di sicurezza a zone di rete isolate, limitando ulteriormente l'accesso e riducendo al minimo la superficie di attacco. Questo approccio a più livelli rafforza la sicurezza combinando autorizzazioni utente granulari con confini di rete rigorosamente controllati.
Vantaggi degli strumenti RBAC open source
Gli strumenti RBAC open source consentono agli utenti di:
- Interagisci con gli altri sviluppatori per segnalare e monitorare bug e richieste di nuove funzionalità in modo trasparente.
- Segui l'ultima versione di sviluppo e scopri come procede lo sviluppo.
- Se sai programmare, correggi i bug e implementa nuove funzionalità.
- Evita pagamenti iniziali, costi di abbonamento e vincoli con un unico fornitore.
Come selezionare strumenti RBAC open source
Ecco alcuni suggerimenti da tenere in considerazione nella scelta di uno strumento RBAC open source:
- Verifica la popolarità dello strumento: il numero di collaboratori e membri della community di GitHub che rispondono alle domande degli utenti riflette la popolarità delle tecnologie open source. Più ampia è la community, maggiore sarà il supporto che la tua organizzazione potrà ottenere.
- Verifica le funzionalità dello strumento: la maggior parte degli strumenti RBAC open source offre personalizzazione dei ruoli, registrazione delle autorizzazioni e metodi di accesso. Tuttavia, se la tua organizzazione prevede di utilizzare lo strumento RBAC per scopi diversi, dovresti cercare un prodotto più completo. Ad esempio, un'organizzazione che cerca una gestione automatizzata degli accessi potrebbe prendere in considerazione una soluzione con funzionalità di gestione delle identità e degli accessi (IAM).
- Confronta le soluzioni proprietarie : le soluzioni open source spesso includono solo funzionalità limitate o aggiuntive. Implementare una soluzione più personalizzata che offra un livello di funzionalità più elevato (ad esempio, la segmentazione cloud) può essere più efficiente per la tua organizzazione. Ecco un elenco di strumenti di micro-segmentazione proprietari con funzionalità RBAC.
Per approfondire
- 6 esempi concreti di controllo degli accessi basato sui ruoli (RBAC)
- Soluzioni per la gestione delle politiche di sicurezza di rete (NSPM)
Sii il primo a commentare
Il tuo indirizzo email non verrà pubblicato. Tutti i campi sono obbligatori.