Autenticação e permissões

Chaves de API para automações, OAuth 2.1 para aplicativos e assistentes de IA, e as permissões (escopos).

🇺🇸 Read in English

Toda chamada envia uma credencial no cabeçalho:

Authorization: Bearer <chave de API ou token OAuth>

A credencial sempre age em nome de um usuário da equipe: o histórico, os logs e as notificações ficam registrados para ele, com o canal usado (api_key ou oauth).

Qual usar?

Chave de APIOAuth 2.1
Uso típicon8n, scripts, integrações servidor-a-servidorClaude, ChatGPT, Cursor, aplicativos de terceiros
Como obterInterface → Integrações → Gerar chaveO aplicativo abre a tela de login do Media Ops e você aprova
PermissõesSó as marcadas na criaçãoTodas as que o seu papel permite
Validade30, 90, 180 ou 365 dias (ou sem expiração)Token de 1 h, renovado automaticamente pelo aplicativo
RevogaçãoIntegrações → Revogar (efeito em até 15 s)Integrações → Remover acesso (imediato)

OAuth é o mais seguro para aplicativos e assistentes

Nenhum segredo de longa duração é copiado, o usuário aprova explicitamente e pode remover o acesso a qualquer momento. Use chaves de API apenas onde não há tela para login (automações).

Chaves de API

  • Formato: mops_ + 43 caracteres. A chave é exibida uma única vez; o servidor guarda apenas o hash SHA-256.
  • Guarde-a em um cofre de segredos (credenciais do n8n, variável de ambiente, gerenciador de segredos). Nunca a coloque em código, planilhas ou mensagens.
  • Uma chave não cria nem revoga outras chaves — isso exige login na interface.
  • Se uma chave vazar, revogue-a em Integrações e gere outra.
curl https://media.ops.infotrafego.com.br/api/v1/me \
  -H "Authorization: Bearer $MEDIA_OPS_API_KEY"

OAuth 2.1

O servidor de autorização é o Supabase Auth do Media Ops (código de autorização + PKCE, registro dinâmico de clientes habilitado). Aplicativos compatíveis descobrem tudo sozinhos a partir de:

DocumentoURL
Metadados do recurso protegido (RFC 9728)/.well-known/oauth-protected-resource
Metadados do servidor de autorização (RFC 8414)/.well-known/oauth-authorization-server

Uma chamada sem credencial recebe 401 com WWW-Authenticate: Bearer resource_metadata="…", que é o ponto de partida da descoberta.

Fluxo, do ponto de vista do usuário:

  1. o aplicativo abre …/auth/v1/oauth/authorize;
  2. o Media Ops pede login (se necessário) e mostra a tela "Aplicativo quer acessar o Media Ops", com as permissões;
  3. ao aprovar, o aplicativo recebe o token e passa a chamar a API/MCP em seu nome.

Permissões (escopos)

EscopoPermite
clients:readLer clientes, BMs, contas de anúncio e ativos
clients:writeCadastrar clientes e BMs, sincronizar ativos, ativar/desativar contas e arquivar clientes (arquivar exige administrador)
balances:readLer os saldos das contas de anúncio
balances:writeAtualizar os saldos
meta:readConsultar a Meta e o Google Drive (públicos, interesses, localizações, formulários, publicações, campanhas, conjuntos, pastas)
campaigns:readLer execuções, progresso e logs
campaigns:writeCriar, estender e reexecutar campanhas
audiences:readLer criações de públicos
audiences:writeCriar públicos de engajamento
templates:readLer modelos de segmentação
templates:writeCriar, editar e remover modelos de segmentação
admin:usersGerenciar usuários (somente administradores)

As permissões são sempre limitadas pelo papel atual do usuário: se um administrador perde o papel, suas chaves perdem admin:users na mesma hora. Chamar algo sem o escopo necessário retorna 403 com code: "insufficient_scope" e required_scope.

No MCP, o assistente só enxerga as ferramentas que as permissões liberam.


Did this page help you?