Pular para o conteúdo principal

Gerenciamento de organização

Ao desenvolver um aplicativo multi-tenant, um cenário comum é ter uma plataforma para que os membros da sua organização possam autogerenciar seus recursos da organização.

Vamos ainda tomar como exemplo a configuração básica da organização que contém tanto um papel de administrador quanto um papel de membro normal.

PapelPermissões
AdminGerenciar membros da organização na organização, por exemplo, convidar, atualizar papel de membro, excluir membro, etc.
Gerenciar informações da organização, por exemplo, atualizar nome da organização e dados personalizados, excluir organização, etc.
MembroApenas capaz de convidar usuários para a organização.

Assim, podemos definir o seguinte modelo de organização:

Modelo de organização

Após definir o modelo de organização, você também pode criar um conjunto de APIs em seu serviço que chamam a Management API nos bastidores para realizar ações de gerenciamento em uma organização específica. As APIs em seu serviço devem validar o token de organização para garantir que o usuário tenha as permissões necessárias.

Exemplos de autogerenciamento de usuários em suas próprias organizações

Aqui está uma lista de coisas que você pode permitir que seus usuários façam em seu aplicativo multi-organização:

Permitir que todos convidem membros:

Você pode permitir que tanto os usuários administradores quanto os membros convidem outros para a organização. Confira esta documentação para detalhes sobre como convidar membros.

Admin pode modificar papéis de membros:

O administrador pode ter o privilégio de modificar os papéis de outros membros. E o administrador pode criar papéis mais específicos para a organização, como líder de departamento, gerente de projeto, coordenador, etc. Isso pode ser implementado 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 massa:

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 implementar o recurso para permitir que usuários administradores adicionem bots a uma organização específica. Isso pode ser feito criando primeiro aplicativos Máquina para Máquina (M2M) e, em seguida, adicionando 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"]}'

Então 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"]}'

Desbloqueie mais possibilidades com a Management API

Os exemplos acima são apenas algumas das muitas possibilidades que você pode alcançar com a Management API. Confira a lista completa de endpoints da Logto Management API e veja o que mais você pode fazer com eles:

Buscar organizações

Buscar escopos de organização

Buscar papel de organização

Buscar convites de organização