Pular para o conteúdo principal

Configure seu serviço de aplicativo com a Management API do Logto

O Logto oferece uma poderosa Management API que permite criar e personalizar seu próprio fluxo de organização dentro do seu aplicativo. Compreender como ela funciona é fundamental para projetar sua configuração personalizada. Abaixo estão os passos básicos e um resumo para integrar a Management API e implementar sua experiência de organização.

Se você já conhece o básico, pode pular direto para o tutorial. Depois de se familiarizar com a configuração, você pode explorar APIs adicionais para adaptar o restante dos fluxos às necessidades do seu negócio.

Estabeleça uma conexão máquina para máquina

O Logto utiliza autenticação máquina para máquina (M2M) para conectar com segurança seu serviço backend ao endpoint da Management API do Logto. Seu serviço backend pode então usar a Management API para lidar com tarefas relacionadas à organização, como criar organizações, adicionar ou remover membros, e muito mais.

Isso envolve:

  1. Criar um aplicativo Máquina para Máquina (M2M) no Logto Console.
Detalhes do aplicativo M2M
  1. Obter um token de acesso M2M do Logto. Saiba mais.
  2. Chamar as Management APIs do Logto a partir do seu serviço backend. Por exemplo, listar todas as organizações:
curl \
-X GET https://[tenant_id].logto.app/api/organizations \
-H "Authorization: Bearer $M2M_ACCESS_TOKEN" \
-H "Content-Type: application/json"

Proteja seu servidor de aplicativo

Como os usuários finais podem realizar certas ações de organização por conta própria, é importante adicionar uma camada de autorização entre o usuário final e seu servidor de aplicativo. Você pode aplicar essa camada globalmente ou no nível da organização, dependendo de quais endpoints da Management API do Logto você utiliza e de como a API do seu produto está estruturada. O servidor deve intermediar cada solicitação, validar o token com escopo de organização do usuário e os escopos necessários, e só então usar uma credencial M2M mantida no servidor para invocar a Management API.

Quando um usuário apresenta um token de organização para solicitar uma ação (por exemplo, criar uma organização), o servidor primeiro valida os escopos no token. Se o token incluir o escopo necessário, como org:create, autorize a solicitação e chame a Management API do Logto via fluxo M2M para criar a organização.

Se o token não contiver os escopos necessários, retorne um 403 Forbidden e ignore a lógica M2M. Isso garante que usuários sem os privilégios apropriados não possam criar organizações.

Abaixo estão padrões comuns de autorização.

Usando permissões de organização

Primeiro, certifique-se de que você definiu permissões e papéis de organização em seu template de organização na seção anterior.

Depois, garanta que UserScope.Organizations (valor: urn:logto:organization) esteja incluído na configuração do Logto. Tomando o SDK React como exemplo:

// src/App.js
import { UserScope } from '@logto/react';

const config = {
endpoint: 'https://<tenant-id>.logto.app/', // Seu endpoint Logto
appId: '40fmibayagoo00lj26coc', // Seu app id
resources: [
'https://my.company.com/api', // Identificador global do recurso de API
],
scopes: [
UserScope.Email,
UserScope.Phone,
UserScope.CustomData,
UserScope.Identities,
UserScope.Organizations, // Solicitar um token de organização
],
};

Isso garante que, ao chamar getOrganizationToken(organizationId), o SDK do cliente solicite um token de organização que contenha as permissões de organização atribuídas ao usuário. Seu serviço backend pode então validar o token e autorizar solicitações subsequentes com base nessas permissões.

Para detalhes sobre como proteger permissões de organização (não relacionadas à API), veja o guia completo.

Usando permissões no nível da API

Isso se aplica quando seus recursos de API e permissões são registrados globalmente, mas os papéis são definidos no nível da organização (você pode atribuir permissões de API a papéis de organização no template de organização).

A implementação é a mesma da seção anterior. Sempre forneça o ID da organização e chame getOrganizationToken(organizationId) para obter um token de organização; caso contrário, as permissões de organização não serão incluídas.

Para detalhes sobre como proteger permissões de API no nível da organização, veja o guia completo.

Usando RBAC global

Neste caso, você pode usar a Management API do Logto para implementar o controle de acesso em nível de sistema.

Em um ambiente multi-tenant, um padrão comum é ter um papel de superusuário ou super admin. Por exemplo, se você está construindo uma plataforma SaaS com Logto, pode querer um superusuário que possa gerenciar todas as organizações de clientes diretamente dentro do seu próprio aplicativo, sem precisar acessar o Logto Console.

Esse superusuário pode realizar ações de nível superior, como criar ou excluir organizações em massa, que exigem permissões amplas de sistema além de qualquer contexto de organização individual. Para habilitar isso, registre um recurso de API no Logto enquanto utiliza a Management API do Logto e use o RBAC global para gerenciar essas permissões.

Para mais detalhes sobre integração e gerenciamento de controle de acesso para RBAC, veja o guia completo.