Pular para o conteúdo principal

Definir recursos de gerenciamento de organização

Antes de projetar a experiência da sua organização, liste os requisitos principais para seu aplicativo multi-inquilino. Este capítulo destaca alguns pontos essenciais a considerar ao moldar essa experiência.

Definir controle de acesso dentro das organizações

Neste cenário, dentro de um inquilino, administradores da organização podem atualizar papéis de usuários, enquanto membros comuns não podem. (Por outro lado, criar uma organização é uma ação em nível de sistema que qualquer usuário final pode realizar em um aplicativo SaaS multi-inquilino.) Para suportar esse nível de controle de acesso granular, defina permissões e papéis da organização para que apenas administradores possam atualizar papéis dentro de uma organização.

nota:

Confira o Template de organização para saber mais sobre papéis e permissões de organização.

O papel admin tem acesso total a todos os recursos da organização, enquanto o papel member tem acesso limitado. Por exemplo, cada papel pode ter permissões como:

  • Papel admin:
    • read:data - Acesso de leitura a todos os recursos de dados da organização.
    • write:data - Acesso de escrita a todos os recursos de dados da organização.
    • delete:data - Acesso de exclusão a todos os recursos de dados da organização.
    • invite:member - Convidar membros para a organização.
    • manage:member - Gerenciar membros na organização.
    • delete:member - Remover membros da organização.
  • Papel member:
    • read:data - Acesso de leitura a todos os recursos de dados da organização.
    • write:data - Acesso de escrita a todos os recursos de dados da organização.
    • invite:member - Convidar membros para a organização.

Você pode fazer isso facilmente no Logto Console. Configurar o controle de acesso é uma parte fundamental da arquitetura da sua organização (multi-inquilino).

Permitir que usuários gerenciem suas próprias organizações

Seu aplicativo também pode precisar de vários recursos de gerenciamento. Para construí-los, utilize a Management API do Logto. Abaixo estão recursos comuns e endpoints de API relacionados. No próximo capítulo, vamos mostrar como implementá-los passo a passo.

Permitir que administradores e membros convidem outros

Tanto administradores quanto membros podem convidar outros para a organização. Veja Convidar membros da organização para detalhes.

Administradores podem modificar papéis de membros

Administradores podem modificar os papéis de outros membros. Eles também podem criar papéis mais específicos para a organização, como líder de departamento, gerente de projeto, coordenador, etc. Implemente isso com estas Management APIs:

curl \
-X POST https://[tenant_id].logto.app/api/organizations/{id}/users/{userId}/roles \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"organizationRoleIds":["admin"]}'

Ou de forma em lote:

curl \
-X POST https://[tenant_id].logto.app/api/organizations/{id}/users/roles \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"userIds":["userId1", "userId2"],"organizationRoleIds":["admin"]}'

Adicionar bots à organização

Você também pode permitir que administradores adicionem bots a uma organização específica. Crie aplicativos máquina para máquina (M2M) primeiro, depois adicione esses aplicativos M2M às organizações como bots.

curl \
-X POST https://[tenant_id].logto.app/api/organizations/{id}/applications \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"applicationIds":["botAppId"]}'

Depois, você também pode atribuir papéis de organização a esses bots.

curl \
-X POST https://[tenant_id].logto.app/api/organizations/{id}/applications/roles \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"applicationIds":["botApp1"],"organizationRoleIds":["botRoleId"]}'