Explicação do modelo de multi-tenancy do Logto
Dá uma olhada em como desenhámos o modelo de multi-tenancy do Logto e os benefícios que ele traz para aplicações SaaS.
Dá uma olhada em como desenhámos o modelo de multi-tenancy do Logto e os benefícios que ele traz para aplicações SaaS.
Podes ter ouvido falar de alguns produtos que utilizam o termo "multi-tenancy" para representar o isolamento de identidade: cada inquilino tem o seu próprio conjunto de utilizadores, papéis, permissões e dados.
Pode parecer contra-intuitivo, mas, na verdade, "multi-tenancy" indica o contrário: múltiplos inquilinos estão a partilhar recursos numa única instância. Para os utilizadores, uma identidade numa aplicação é como uma carta de condução. Por exemplo, com uma carta de condução, podes conduzir em diferentes estados (uma identidade para múltiplas organizações), em vez de teres de tirar uma nova carta de condução para cada estado.
No Logto, notámos esta confusão desde o início do nosso design, e esforçámo-nos para fazê-lo da maneira correta para as tuas aplicações e os teus utilizadores. Eis o nosso design:
Este modelo proporciona flexibilidade e reutilização para gerir identidades, especialmente para aplicações SaaS. Se olharmos para algumas apps SaaS populares, podemos ver que todas se encaixam neste modelo. O termo "organização" pode ser diferente em diferentes apps, como "espaço de trabalho", "equipa", etc. Mas o conceito é o mesmo.
Por exemplo, no Notion (uma ferramenta de colaboração popular):
Assim, os utilizadores podem facilmente alternar entre espaços de trabalho sem mudar de contas ou voltar a entrar, e mantém-se o isolamento entre os espaços de trabalho. Traduzindo isto para o modelo do Logto, significa:
De acordo com diferentes papéis, um utilizador pode ter diferentes permissões em diferentes espaços de trabalho (organizações).
Para os utilizadores, podem desfrutar da verdadeira experiência de single sign-on. Alternar entre organizações é tão fácil quanto alternar entre separadores.
Uma vantagem das aplicações SaaS é que são padronizadas e escaláveis. Por exemplo, podes criar um novo espaço de trabalho no Notion com alguns cliques, e está pronto para ser utilizado.
Quando a tua aplicação está a crescer, podes querer adicionar mais papéis e permissões a cada organização. Por exemplo, um novo papel "convidado" e uma nova permissão "convidar:convidado". Pode ser um pesadelo se precisares de atualizar todas as organizações existentes uma por uma.
Com o Logto, podes atualizar o template de organização, e todas as organizações existentes serão atualizadas automaticamente.
No Logto, usamos o mesmo modelo de controlo de acesso (RBAC) tanto para organizações como para recursos de API. Isso significa que não precisas de aprender um novo modelo de controlo de acesso se estiveres familiarizado com o RBAC. Entretanto, eles são isolados uns dos outros, para que possas usá-los para diferentes casos de uso.
A parte mais empolgante é que podes usá-los ao mesmo tempo. Vamos expandir o exemplo do Notion:
A maioria dos SDKs do Logto suporta ambos os tipos de RBAC.
As diferenças
O RBAC de organização e o RBAC de recurso de API diferem nos seguintes aspetos:
Construir uma aplicação SaaS é difícil, e esperamos que o Logto possa ajudar-te a focar-te no teu core business. Não hesites em dar-nos feedback se tiveres alguma dúvida ou sugestão.