Você realmente precisa de múltiplos locatários para gerenciar seu sistema de identidade?
O conceito de 'locatário' é relativamente desconhecido para a maioria dos usuários, mas é especialmente importante para construir modelos de identidade. Neste artigo, passaremos por exemplos para ajudar todos a entender que tipo de modelo de identidade se adapta ao seu negócio.
Com a crescente maturidade das ferramentas de baixo código e serviços em nuvem hoje, acompanhada pela aceleração da ferramenta de IA, o limiar para o desenvolvimento de aplicativos está sendo significativamente reduzido, e mais e mais aplicativos estão surgindo no mercado.
Seja aplicativos complexos ou simples, a maioria dos aplicativos envolve cenários de registro e login de usuários, para que os usuários possam obter serviços mais estáveis, seguros e personalizados. E para resolver o problema de login e registro de usuários, o primeiro passo é construir um sistema de identidade.
Para muitos aplicativos voltados para o consumidor, seus modelos de identidade são frequentemente relativamente simples, ou até mesmo exigem apenas email e senha. Para aplicativos que estão em uma fase de rápido crescimento e atração de novos usuários, isso é suficiente; mas uma vez que o aplicativo tem seu próprio modelo de negócio, no caso mais simples, por exemplo, servindo anúncios, precisa haver uma distinção entre contas de usuário comuns e contas de anunciantes. Contas de anunciantes podem personalizar escalas de entrega de anúncios, conteúdo, etc.; enquanto usuários comuns podem apenas navegar por algum conteúdo gratuito e anúncios, etc.
Logto é uma solução de identidade baseada em nuvem, e há também uma solução de software de código aberto (OSS) com o mesmo núcleo que os serviços em nuvem para usuários com necessidades especiais de personalização. O serviço do Logto é construído em um sistema multi-locatário, onde cada usuário do Logto cria sua própria conta e pode gerenciar múltiplos locatários dentro da conta. Outros vários serviços de identidade em nuvem também têm arquiteturas semelhantes, com cada serviço em nuvem diferente tendo sua própria definição de "locatário", então o modelo de locatário que discutimos neste artigo é limitado ao cenário do Logto, e para outros fornecedores pode haver outros conceitos correspondentes.
Notavelmente, no modelo multi-locatário do Logto, os dados entre locatários (todas as informações dos usuários finais) são isolados, então os usuários do Logto podem gerenciar dados de contas de usuários finais de acordo com suas necessidades de negócios dentro de uma conta do Logto. Muitos outros serviços de identidade em nuvem só podem suportar cada conta tendo um locatário, o que faz com que usuários que precisam gerenciar múltiplos locatários ao mesmo tempo frequentemente troquem de contas, resultando em uma experiência ruim.
Depois de tudo isso, como você deve escolher um modelo de conta adequado para seu aplicativo? Aqui olhamos para três casos.
Caso 1: App fornece serviço diretamente para usuários finais
O modelo de identidade neste tipo de aplicativo é bastante simples. Vamos usar um aplicativo de streaming de música como exemplo — além do admin (usuário “foo” do Logto, que é o proprietário do locatário neste caso, inerentemente possui acesso de administrador), há apenas usuários finais.
Neste cenário, os usuários finais podem ser divididos em três tipos:
- Usuário do plano gratuito: Pode tocar apenas músicas gratuitas
- Usuário do plano pago: Pode tocar músicas gratuitas e criar suas próprias playlists
- Usuário Premium: Além de tocar músicas gratuitas e criar playlists, também pode tocar músicas HiFi
No cenário de aplicação acima, precisamos apenas de três tipos de funções (gratuito, pago, premium), cada uma atribuída com permissões diferentes. Então, depois que o usuário final faz login, Logto pode decidir se deve ou não fornecer certos serviços específicos (por exemplo, acesso a músicas HiFi) a ele com base na função que ele possui. Neste ponto, precisamos apenas de um único locatário para atender aos requisitos.
Caso 2: Aplicativo de plataforma de e-commerce
Uma plataforma que conecta provedores de serviços terceirizados e usuários finais, que também é um modelo de negócios 2C muito comum hoje em dia. Existem dois grupos de usuários a serem considerados - usando um aplicativo de e-commerce como exemplo, eles são os comerciantes (provedores de serviços) e os compradores (usuários finais).
Existem duas maneiras de construir o modelo de identidade aqui:
- Colocar os grupos de usuários compradores e comerciantes sob o mesmo locatário.
- Colocar os compradores e comerciantes em dois locatários diferentes, respectivamente.
Para tornar o exemplo mais fácil de entender, assumimos que os compradores podem fazer pedidos ou visualizar descrições de produtos; os comerciantes podem alterar preços de produtos, alterar descrições de produtos e visualizar inventário de produtos. Comerciantes visualizam descrições de produtos para ajudá-los a encontrar problemas e atualizar as informações do produto de forma oportuna.
Para o modelo de identidade 1, existe apenas um aplicativo. Todos os usuários que se registram se tornam compradores. Se alguém precisar vender coisas, pode adicionar seus próprios produtos para venda, então esses usuários finais obterão permissões de comerciantes além das permissões de compradores para gerenciar seus próprios produtos.
Para o modelo de identidade 2, como cada locatário tem suas próprias informações de identidade únicas e seu próprio gateway de autorização separado, cada locatário precisa ter seu próprio aplicativo separado. No caso do exemplo, haveria um aplicativo de comprador e um aplicativo de comerciante. Contas de compradores não podem se tornar comerciantes, e contas de comerciantes também não podem se tornar compradores. Se os comerciantes quiserem verificar suas próprias descrições de produtos da perspectiva de um comprador, como no modelo 1, eles precisariam reimplementar a mesma funcionalidade no aplicativo de comerciante, ou registrar uma conta de aplicativo de comprador para visualizá-la. Isso adiciona muita complexidade, mas a vantagem é que as identidades de comprador e comerciante são completamente isoladas.
Se os comerciantes tiverem muitos produtos diferentes para gerenciar, usar o modelo de identidade 2 e desenvolver um aplicativo de comercialização mais especializado deve ser uma escolha melhor. O modelo 1 é mais adequado para plataformas como eBay, onde os comerciantes não têm muitos produtos e também não precisam de funcionalidades de gerenciamento de produtos excessivamente complexas.
Caso 3: Aplicativos feitos por empresa de consultoria de TI
Suponha que exista uma empresa de consultoria técnica de TI cujos clientes não têm a capacidade de desenvolver sistemas de TI por conta própria, então precisam buscar serviços técnicos desta empresa.
Assumindo que a empresa tem dois clientes, um sendo um sistema de gerenciamento de livros interno para uma livraria, e o outro cliente é um sistema de reservas para um hotel.
Do ponto de vista do dono da livraria, obviamente eu não quero que os hóspedes do hotel possam fazer login aleatoriamente no meu sistema de gerenciamento de livros, pois isso seria muito inseguro. Portanto, do ponto de vista da proteção da privacidade, um locatário separado deve ser configurado para cada cliente, utilizando o mecanismo de isolamento de informações de locatário, para garantir que os dados de clientes sejam invisíveis para outros clientes.
Como mencionamos antes, mesmo se você tiver a necessidade de criar múltiplos locatários, Logto pode ajudá-lo a gerenciar múltiplos locatários dentro de uma conta, o que é mais conveniente e seguro em comparação com alguns outros serviços que exigem que você crie e gerencie múltiplas contas você mesmo.
Através dos exemplos mostrados acima, você deve ter entendido quando definitivamente precisa criar múltiplos locatários, em quais cenários você pode ter um único locatário ou múltiplos locatários, e, de acordo com suas próprias necessidades de negócios, escolher a solução de modelo de identidade que melhor se adapta a você.
A equipe do Logto tem como objetivo garantir que a questão de "se múltiplos locatários devem ser criados" não seja um bloqueio para qualquer negócio. Se você não tem certeza se seu cenário de negócios pode ser alcançado com um único locatário, por favor, entre na comunidade Logto para consulta. Sua pergunta pode ser também a pergunta de outra pessoa, então compartilhe os desafios que você encontrou conosco para ajudar a melhorar a escalabilidade dos produtos do Logto.
Se você está selecionando uma estrutura de identidade para seu aplicativo, Logto vale a pena experimentar. Ele fornece uma solução pronta para uso adequada para vários cenários de negócios desde pequenos negócios até aplicações de grande escala!