Gerenciamento de organização
Ao desenvolver um aplicativo multi-tenant, um cenário comum é ter uma plataforma para os membros da sua organização gerenciarem seus recursos de 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.
Papel | Permissões |
---|---|
Admin | Gerenciar 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. |
Membro | Apenas capaz de convidar usuários para a organização. |
Assim, podemos definir o seguinte modelo de organização:
Após o modelo de organização ser definido, 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 auto-gerenciamento 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 de 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. Verifique 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 aplicativos Máquina para Máquina (M2M) primeiro 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çõesBuscar escopos de organização
Buscar papel de organização
Buscar convites de organização