Italiano
  • organizzazioni
  • collaborazione
  • identità
  • gestione utenti
  • autenticazione
  • autorizzazione

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.

Gao
Gao
Founder

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.

Esempio di 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:

Modello di organizzazione

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 di member.
  • Organizzazione B: Solo Alice è un membro, e ha il ruolo di member.

Organizzazione A

Organizzazione B

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.

Nuovi ruoli dell'organizzazione

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.