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