Pular para o conteúdo principal

Planeje sua arquitetura

Para estabelecer as melhores práticas em design e planejar sua arquitetura, considere suas necessidades de diferentes perspectivas. Foque no objetivo final e no fluxo de trabalho, não apenas nas tecnologias e funcionalidades subjacentes. Aqui estão algumas perguntas-chave para guiá-lo e inspirá-lo na construção da arquitetura ideal para seu produto.

Qual é o seu modelo de negócios e quem são as partes e stakeholders envolvidos?

Geralmente, existem dois principais modelos de negócios, B2C e B2B, cada um envolvendo diferentes partes em cenários complexos de gerenciamento de identidade. Compreender esses stakeholders chave ajuda a projetar sistemas que oferecem uma experiência centrada no usuário e abordam todos os aspectos do gerenciamento de identidade.

B2C

Em aplicativos B2C, o gerenciamento de identidade é tipicamente direto e geralmente envolve apenas duas partes.

Desenvolvedores (Você)

Isso se refere aos administradores e colaboradores do Logto Console — tipicamente você e sua equipe de desenvolvimento — que gerenciam e protegem o pool de identidades de usuários e trabalham diretamente com o banco de dados de identidade. Você pode gerenciar diretamente as identidades dos clientes no Logto Console ou fazer um desenvolvimento personalizado usando a Logto Management API.

Seus consumidores

Seus consumidores são identidades de usuários armazenadas no serviço e banco de dados central do Logto. Em um modelo B2C, os consumidores podem gerenciar sua própria autenticação e informações pessoais.

B2B

Em aplicativos B2B, há outra camada e contexto introduzidos nesta arquitetura. O proprietário da unidade de negócios (ou organização) controla quem pode acessar sua instância, como eles se autenticam e o que podem fazer. A organização gerencia a identidade de todos os usuários finais que acessam sua instância.

Desenvolvedores (Você)

Isso ainda se refere aos administradores e colaboradores do Logto Console. Embora os administradores da organização possam gerenciar identidades, os desenvolvedores ainda podem gerenciar diretamente as identidades dos clientes no Logto Console ou através de desenvolvimento personalizado usando a Logto Management API.

Seus clientes (Administradores da organização)

Seus clientes são unidades de negócios que representam "organizações" em um aplicativo multi-tenant, por exemplo, workspaces no Slack ou Notion. Cada workspace geralmente tem múltiplos papéis e um ou mais administradores que gerenciam funcionários ou usuários. No conteúdo a seguir, nos referimos a pessoas que PODEM gerenciar identidades de membros como "administradores da organização."

Funcionários, parceiros ou consumidores de seus clientes

Estas são identidades de usuários finais, referidas como "membros" no contexto da organização, e podem ser gerenciadas dentro de uma organização. Embora essas identidades sejam separadas por organizações, todas são agregadas sob um único sistema de identidade.

Em cenários do mundo real, do ponto de vista do produto, esses poderiam ser funcionários da empresa, parceiros de negócios ou até mesmo consumidores associados à organização.

Outros

Outros modelos, como B2B2C, podem surgir desses dois devido à sua complexidade. No entanto, a abordagem permanece a mesma: todas as mudanças surgem da mesma base central.

No próximo capítulo, vamos examinar detalhadamente essas duas arquiteturas comuns e destacar os recursos relacionados suportados pelo Logto.

Refine suas necessidades de autenticação

Uma vez que você compreenda os principais usuários e partes envolvidas no design de sua tecnologia e produto, considere as seguintes perguntas para refinar sua arquitetura de identidade e determinar suas necessidades de autenticação e nível de controle:

  1. Quais opções os clientes têm para autenticação e experiência de login? Estas geralmente dependem do seu negócio, estratégia de aquisição e necessidades do produto.

    ex. Quais recursos são necessários para meu aplicativo? Login social? Login sem senha?

  2. Qual nível de controle você (desenvolvedores) deseja sobre as ações dos clientes?

    ex. Os clientes podem atualizar e manter seu perfil? Os clientes podem ativar e desativar a MFA por conta própria? Eles podem escolher métodos de login preferenciais?

  3. Que tipos de personalização você gostaria de delegar às organizações? Estas dependem do domínio e indústria do seu produto e das necessidades específicas dos seus clientes e podem variar de uma organização para outra.

    ex. A experiência de login deve variar para cada organização? E se sim, a personalização deve ser limitada à marca ou deve incluir também diferenças no fluxo de autenticação?

  4. Qual nível de controle você gostaria que os administradores da organização tivessem sobre as ações de seus membros?

    ex. O administrador da organização deve poder decidir se a MFA é necessária? O administrador deve ter a capacidade de alterar a senha de um membro?

Você precisa de um sistema de identidade universal único ou múltiplos separados?

Outra questão chave a ter em mente é perguntar a si mesmo se você ou um segmento do seu negócio ou produto precisa de um sistema de identidade único ou separado.

Tipicamente, a resposta é um sistema de identidade universal único, o que significa que você só precisa de um único tenant Logto (ou uma instância do Logto admin console no OSS). O Logto é construído para suportar tanto múltiplos aplicativos quanto múltiplas organizações dentro de um único tenant. Um tenant Logto de produção é geralmente suficiente para a maioria das necessidades. Aqui estão alguns cenários comuns que você pode enfrentar:

Eu gostaria de construir um aplicativo SaaS com multi-tenancy

Se você está construindo um aplicativo SaaS com o conceito de "workspace" ou "organização" para cada cliente, você pode usar organizações para gerenciar o workspace de cada cliente dentro de um único tenant.

Neste caso, um usuário pode ser membro de múltiplas organizações. Por exemplo, um usuário pode ter um workspace pessoal e se juntar ao workspace da empresa.

Eu tenho múltiplos aplicativos

Com o Logto, você pode gerenciar múltiplos aplicativos dentro de um único tenant, independentemente de

  1. O tipo de aplicativo (por exemplo, web, móvel, desktop, etc.)
  2. Os casos de uso e funcionalidades do aplicativo (por exemplo, aplicativo de motorista, aplicativo de passageiro, etc.)

Eu tenho múltiplos clientes empresariais

Você pode usar organizações com SSO corporativo para gerenciar múltiplos clientes empresariais dentro de um único tenant. Ao configurar as configurações de domínio de email do SSO corporativo e usar o recurso de provisionamento Just-in-Time, você pode automatizar o processo de usuários com contas de SSO corporativo se juntando ou fazendo login nas organizações apropriadas.