Pular para o conteúdo principal

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

Use a Management API do Logto para construir fluxos personalizados de organização (organization flows) em seu aplicativo. Abaixo estão as etapas básicas de configuração para integrar a Management API. Se você já estiver familiarizado, 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 (organizations), adicionar ou remover membros, e muito mais.

Isso envolve:

  1. Criar um aplicativo Máquina para Máquina (M2M) no Logto Console.
Detalhes do app 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 operações de organização de forma self-service, adicione uma camada de autorização entre o usuário final e seu servidor de aplicativo. O servidor deve mediar cada solicitação, validar o token 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 o 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. Veja 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', // Seu identificador global de 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 cliente solicita um token de organização que contém as permissões de organização atribuídas ao usuário. Seu serviço backend pode então validar o token e autorizar as 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.

Misturando permissões de nível de organização e permissões de nível de API

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

A implementação é a mesma da seção anterior. Sempre forneça o ID da organização e chame getOrganizationToken(organizationId) para buscar 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 de nível de organização, veja o guia completo.