Caso di studio: Costruisci la multi-tenancy con Logto Organizations
Scopri come impostare una solida e scalabile base d'identità per la multi-tenancy con Logto Organizations.
Oggigiorno, la multi-tenancy diventa una parte essenziale di un'app o SaaS. Coinvolge spesso la relazione complessa tra utenti, organizzazioni, ruoli e permessi. Ad esempio, un utente può essere membro di più organizzazioni, e viceversa; un utente può anche avere ruoli diversi in diverse organizzazioni.
Il problema
Questo può portare a mal di testa non solo all'inizio, ma anche nella manutenzione a lungo termine di un'app. Il modello tradizionale di controllo accessi basato sui ruoli (RBAC) può parzialmente risolvere questo problema, ma diventa rapidamente un incubo quando aumenta il numero di utenti e organizzazioni.
Ad esempio, all'inizio, potresti avere solo due ruoli in ogni organizzazione: admin
e member
. Quando hai 10 organizzazioni, gestirai 20 ruoli; quando hai 1.000 organizzazioni, gestirai 2.000 ruoli.
Con la crescita del business, potresti aver bisogno di aggiungere più ruoli, come ospite
, sviluppatore
, ecc. La complessità del modello RBAC crescerà esponenzialmente.
Abbiamo avuto lo stesso problema quando abbiamo costruito Logto Cloud. Ci siamo presto resi conto che è un problema comune per l'industria, e avevamo bisogno di risolverlo. E Logto Organizations arriva in nostro soccorso.
Modello di organizzazione
Una domanda veloce: perché le app SaaS sono SaaS? Crediamo che la scalabilità sia uno dei motivi più importanti. In altre parole, ciò che funziona per un cliente dovrebbe funzionare per tutti i clienti.
Questo porta al concetto di "modello di organizzazione". Un modello di organizzazione è una bozza del modello di controllo accessi per ogni organizzazione: definisce i ruoli e i permessi che si applicano a tutte le organizzazioni.
Supponiamo di avere due ruoli per ogni organizzazione:
admin
: può gestire l'organizzazione, incluso aggiungere/rimuovere membri, cambiare ruoli, ecc.member
: può accedere alle risorse dell'organizzazione e invitare nuovi membri.
Possiamo creare un modello di organizzazione con la seguente configurazione:
Aggiungi utenti alle organizzazioni
Poiché abbiamo impostato il modello di organizzazione, gestire gli utenti diventa facile e naturale. Puoi aggiungere un utente a un'organizzazione tramite Logto Console (l'interfaccia web) o tramite Logto Management API.
Consulta Configura organizzazioni per saperne di più.
Abbiamo aggiunto due organizzazioni con la seguente configurazione:
- Organizzazione A: Sia Alice che Bob sono membri. Alice ha il ruolo di
admin
, e Bob ha il ruolo dimember
. - Organizzazione B: Solo Alice è un membro, e ha il ruolo di
member
.
Richiedi token dell'organizzazione nella tua app
Nella tua app cliente, ora puoi richiedere un token di accesso all'organizzazione (token dell'organizzazione) da Logto. Il token dell'organizzazione è un token JWT che contiene le informazioni necessarie affinché il tuo servizio verifichi se l'utente ha il permesso nell'organizzazione.
I passaggi dettagliati per richiedere un token dell'organizzazione sono descritti in Integra le Organizzazioni nella tua app.
Supponiamo che Alice sia connessa alla tua app e voglia rimuovere un utente nell'Organizzazione A. La tua app può richiedere un token dell'organizzazione per "Organizzazione A" con il permesso remove:member
(ambito). Logto verificherà se Alice ha il permesso nell'organizzazione e restituirà un token dell'organizzazione poiché ha il ruolo di admin
:
Ecco alcuni esempi di casi di errore:
- Se Bob vuole rimuovere un utente nell'Organizzazione A, Logto restituirà un errore poiché non ha il ruolo di
admin
nell'Organizzazione A. - Se Alice vuole rimuovere un utente nell'Organizzazione B, Logto restituirà un errore poiché non ha il ruolo di
admin
nell'Organizzazione B. - Se Bob vuole ottenere il token dell'organizzazione con qualsiasi permesso nell'Organizzazione B, Logto restituirà un errore poiché non è membro nell'Organizzazione B.
Dopo che la tua app riceve il token dell'organizzazione, può chiamare il tuo servizio con il token dell'organizzazione aggiungendolo all'header Authorization
.
Verifica i token dell'organizzazione nel tuo servizio
Nel tuo servizio, puoi verificare il token dell'organizzazione tramite il processo di verifica standard del JWT. Consulta Verifica i token dell'organizzazione per ulteriori dettagli.
Aggiorna modello di organizzazione
Quando hai bisogno di aggiornare il modello di organizzazione, ad esempio, aggiungere un nuovo ruolo chiamato developer
, puoi farlo in Logto Console o tramite Logto Management API. La modifica si applicherà automaticamente a tutte le organizzazioni senza alcun downtime.
Conclusione
Con Logto Organizations, gestire e scalare la multi-tenancy diventa standard e confortevole. Puoi concentrarti sulla tua logica di business e lasciare l'identità e il controllo accessi a Logto.