Português (Portugal)
  • organizações
  • colaboração
  • identidade
  • gestão de utilizadores
  • autenticação
  • autorização

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.

Gao
Gao
Founder

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.

Exemplo de Organizações

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:

Modelo de Organizaçã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 de member.
  • Organização B: Apenas Alice é membro, e ela tem a função de member.

Organização A

Organização B

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.

Novas funções de organização

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.