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:
- Criar um aplicativo Máquina para Máquina (M2M) no Logto Console.
- Obter um token de acesso M2M do Logto. Saiba mais.
- 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.