Estudo de caso: Construir multi-inquilinos com Logto Organizations
Aprende como configurar uma base de identidade sólida e escalável para multi-inquilinos com Logto Organizations.
Hoje em dia, multi-inquilinos tornam-se uma parte essencial de uma aplicação ou SaaS. Envolve frequentemente a relação complexa entre utilizadores, organizações, funções e permissões. Por exemplo, um utilizador pode ser membro de várias organizações, e vice-versa; um utilizador pode também ter diferentes funções em diferentes organizações.
O problema
Isto pode causar dores de cabeça não só no início, mas também na manutenção a longo prazo de uma aplicação. O modelo tradicional de controlo de acesso baseado em funções (RBAC) pode resolver parcialmente este problema, mas rapidamente torna-se um pesadelo quando o número de utilizadores e organizações cresce.
Por exemplo, no início, podes ter apenas duas funções em cada organização: admin
e member
. Quando tens 10 organizações, irás gerir 20 funções; quando tens 1.000 organizações, irás gerir 2.000 funções.
À medida que o negócio cresce, podes precisar adicionar mais funções, como guest
, developer
, etc. A complexidade do modelo RBAC crescerá exponencialmente.
Foi o mesmo problema que tivemos quando construímos a Logto Cloud. Rapidamente percebemos que é um problema comum na indústria, e precisamos resolvê-lo. E Logto Organizations está aqui para salvar.
Modelo de organização
Uma pergunta rápida: Por que as aplicações SaaS são SaaS? Acreditamos que a escalabilidade é uma das razões mais importantes. Em outras palavras, o que funciona para um cliente deve funcionar para todos os clientes.
Isso leva ao conceito de "modelo de organização". Um modelo de organização é um projeto do modelo de controlo de acesso para cada organização: define as funções e permissões que se aplicam a todas as organizações.
Vamos dizer que temos duas funções para cada organização:
admin
: pode gerir a organização, incluindo adicionar/remover membros, alterar funções, etc.member
: pode aceder aos recursos da organização e convidar novos membros.
Podemos criar um modelo de organização com a seguinte configuração:
Adicionar utilizadores a organizações
Uma vez que configurámos o modelo de organização, gerir utilizadores torna-se fácil e natural. Podes adicionar um utilizador a uma organização pelo Logto Console (a interface do utilizador da web) ou através da Logto Management API
Consulta Configurar organizações para saber mais.
Adicionámos duas organizações com a seguinte configuração:
- Organização A: Tanto Alice como Bob são membros. Alice tem a função de
admin
, e Bob tem a função demember
. - Organização B: Apenas Alice é membro, e ela tem a função de
member
.
Solicitar tokens de organização na tua aplicação
Na tua aplicação de cliente, agora podes solicitar um token de acesso de organização (token de organização) do Logto. O token de organização é um token JWT que contém informações necessárias para o teu serviço verificar se o utilizador tem a permissão na organização.
Os passos detalhados de solicitar um token de organização são descritos em Integrar Organizações com a tua aplicação.
Assumindo que Alice está conectada na tua aplicação, e ela quer remover um utilizador na Organização A. A tua aplicação pode solicitar um token de organização para "Organização A" com a permissão remove:member
(escopo). Logto irá verificar se Alice tem a permissão na organização, e retornar um token de organização já que ela tem a função de admin
:
Aqui estão alguns exemplos de casos de erro:
- Se Bob quiser remover um utilizador na Organização A, Logto retornaria um erro já que ele não tem a função de
admin
na Organização A. - Se Alice quiser remover um utilizador na Organização B, Logto também retornaria um erro já que ela não tem a função de
admin
na Organização B. - Se Bob quiser obter um token de organização com qualquer permissão na Organização B, Logto retornaria um erro já que ele não tem a adesão na Organização B.
Depois que a tua aplicação receber o token de organização, pode chamar o teu serviço com o token de organização adicionando-o ao cabeçalho Authorization
.
Verificar tokens de organização no teu serviço
No teu serviço, podes verificar o token de organização pelo processo padrão de verificação JWT. Vê Verificar tokens de organização para mais detalhes.
Atualizar modelo de organização
Quando precisas atualizar o modelo de organização, por exemplo, adicionar uma nova função chamada developer
, podes fazê-lo no Logto Console ou através da Logto Management API. A alteração aplicar-se-á automaticamente a todas as organizações sem qualquer tempo de inatividade.
Conclusão
Com Logto Organizations, gerir e escalonar multi-inquilinos torna-se padrão e confortável. Podes focar na tua lógica de negócio e deixar a identidade e controlo de acesso para o Logto.