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.
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"]}'