API Omniscol — tokens de autenticação

Premium

API Omniscol: o Omniscol expõe uma API REST documentada em OpenAPI para as integrações sistema a sistema — painel de controle externo, exibição sob medida, sincronização com um ERP ou um sistema de informação, agente IA via MCP. Os tokens de acesso, limitados aos pontos de acesso escolhidos na sua geração, administram-se a partir da interface nas contas que oferecem esta integração.

A API Omniscol é uma API REST documentada em OpenAPI. Ela serve às integrações sistema a sistema: painel de controle externo, exibição sob medida, sincronização ERP/SI, ou agente IA via MCP.

Os tokens de API administráveis a partir da interface estão disponíveis nas contas que oferecem esta integração. Um token derivado dá acesso unicamente aos pontos de acesso de API selecionados na sua geração; não presuma que ele cobre toda a API.

Chave e token: dois objetos distintos

O Omniscol distingue dois objetos que não se deve confundir.

Uma chave é um objeto persistente, conservado do lado do Omniscol. Ela reúne:

  • um identificador curto, gerado aleatoriamente, público: é ele que a lista exibe, e ele viaja em cada token para designar a chave a verificar;
  • um rótulo descritivo, modificável a qualquer momento;
  • uma data de expiração facultativa, modificável a qualquer momento;
  • um segredo aleatório longo, sorteado do lado do servidor, que serve de chave de assinatura criptográfica.

O identificador, o rótulo e a data de expiração são informações de administração: o identificador é apenas uma referência pública, não um elemento secreto. O segredo, por sua vez, é o único material de assinatura: gerado aleatoriamente na criação da chave, permanece do lado do servidor, não é modificável, e nunca é exibido nem devolvido — nem na criação, nem na lista das chaves. E mesmo se ele vazasse, não bastaria para forjar um token: a assinatura o combina com um sal próprio à conta e a um segredo do servidor que, também eles, nunca saem do Omniscol.

Um token é um JWT (JSON Web Token) autônomo, assinado com o segredo da chave. É ele que você transmite ao sistema externo. O seu conteúdo assinado carrega a conta em questão, a lista dos pontos de acesso autorizados, a chave da qual ele deriva e a sua própria data de expiração.

Em outras palavras: uma chave assina, um token é assinado. Uma mesma chave pode assinar vários tokens — todos verificáveis com o mesmo segredo, portanto todos revogados juntos se a chave desaparecer.

O Omniscol não armazena o token: ele o gera, o exibe uma vez, depois o reverifica a cada chamada reconstituindo a sua assinatura a partir do segredo da chave (HMAC SHA-256). Nenhuma autorização carregada pelo token pode, portanto, ser alterada sem esse segredo.

Criar um token

A tela Compartilhamento está disponível em Administração → Importação / Exportação nas contas Premium. A criação faz-se em dois tempos: cria-se primeiro uma chave, depois gera-se um token a partir dessa chave.

  1. Criar uma chave — informe um rótulo esclarecedor e, se o acesso for temporário, uma data de expiração. O seu rótulo e a sua expiração permanecem modificáveis depois; o seu segredo de assinatura, não.
  2. Gerar um token — selecione a chave, marque os pontos de acesso autorizados, escolha eventualmente uma data de expiração própria ao token, depois gere o JWT.

Na geração, o Omniscol exibe o token uma única vez. Copie-o imediatamente para um gerenciador de segredos: ele não será mais reexibido. A expiração do token está inscrita no seu conteúdo assinado: ela não se modifica a posteriori. Para alterar essa data, gere um novo token.

Há, portanto, dois níveis de expiração, independentes um do outro:

  • expiração da chave — modificável a partir da lista das chaves; quando ela é atingida, todos os tokens derivados dessa chave são recusados (a chamada falha com um 401);
  • expiração do token — fixada na geração, inscrita no JWT, e não modificável em seguida.

Pontos de acesso autorizados

Um token dá acesso apenas aos pontos de acesso marcados na sua geração: nunca presuma que ele cobre toda a API. A lista autorizada é transportada no token e verificada a cada chamada; uma chamada a um ponto de acesso não autorizado é recusada (401).

Além dos pontos de acesso individuais, a lista de seleção propõe atalhos por módulo:

  • a entrada de um módulo sozinha autoriza todos os seus pontos de acesso;
  • as variantes por operação — leitura, modificação, criação, exclusão — restringem o módulo a um único tipo de chamada.

Marcar « Horário [leitura] » concede assim toda a leitura dos horários sem abrir a mínima escrita, sem marcar cada ponto de acesso um a um. Fique no mais justo: conceda apenas os módulos e as operações estritamente necessárias à integração.

Utilizar um token

Duas maneiras usuais de enviar o token à API:

  • Cabeçalho HTTP: Authorization: Bearer <token> (recomendado).
  • Query string: ?auth=<token> (prático para o debug, mas aparece nos logs HTTP — a evitar em produção).

Exemplo curl, a adaptar com um ponto de acesso real extraído do OpenAPI:

curl -H "Authorization: Bearer $TOKEN" \
  https://sua-escola.omniscol.com/api/<module>/<ponto-de-acesso>

Documentação OpenAPI

A tela Importação / Exportação exibe um link OpenAPI 3.1 que abre a especificação disponível para a conta no Swagger Editor. Você aí encontrará:

  • a lista dos pontos de acesso de API expostos,
  • os esquemas dos dados trocados,
  • os métodos e parâmetros,
  • as respostas esperadas.

A especificação também é servida diretamente pela sua conta, sem autenticação:

  • /api/guest/openapi.json — especificação no formato JSON;
  • /api/guest/openapi.yaml (ou /api/guest/openapi?yaml=true) — mesmo conteúdo no formato YAML;
  • /api/guest/school_schema.json — esquema JSON dos dados da conta.

A ajuda completa para o seu assistente de IA

O portal também publica toda a ajuda do Omniscol em um único arquivo de texto, pronto para servir de base de conhecimento a um assistente de IA (projeto Claude, GPT personalizado…):

Revogar um acesso

A revogação faz-se ao nível da chave, não do token individual.

A tela lista as chaves que serviram para gerar tokens. Excluir uma chave apaga o seu segredo de assinatura do lado do Omniscol: a partir daí, nenhuma assinatura derivada desse segredo pode mais ser verificada, e toda chamada que apresente um token oriundo dessa chave falha com um 401. É a ausência do segredo que invalida os tokens, não uma lista de revogação.

Para o departamento de TI, duas consequências:

  • Não há revogação token por token. O Omniscol não conserva os JWT emitidos e não pode desativar um isoladamente: um token já gerado permanece válido até a sua própria expiração, ou até que a sua chave seja excluída ou expirada.
  • Modificar a expiração de uma chave age imediatamente sobre todos os seus tokens: adiantar essa data corta o acesso do conjunto dos tokens oriundos da chave.

Boa prática: exclua sem esperar toda chave cujo vazamento você suspeite, depois recrie uma chave de substituição com um rótulo esclarecedor.

Uma chave por alvo e por uso

Já que a revogação é por chave, dedique uma chave a cada integração (um software externo = uma chave). O segredo de uma chave só assina os seus próprios tokens: excluir essa chave só invalida os acessos da integração em questão, sem tocar nos outros.

Ao contrário, uma chave única compartilhada entre vários sistemas torna toda revogação abrupta: excluir a chave comprometida corta de uma vez todos os sistemas que a usavam.

Para quais integrações

A API é tipicamente utilizada para:

  • sistemas de signage personalizados (além dos painéis de exibição Omniscol nativos; veja Personalização dos painéis),
  • dashboards externos consolidando o Omniscol e outras fontes,
  • conectores ou sincronizações com um ERP ou um SI de negócio,
  • agentes IA compatíveis com MCP consumindo o Omniscol via o servidor MCP; veja MCP — conectar um agente IA externo.

Para um acesso delegado a um serviço terceiro identificado (token com escopo, consentimento do usuário, revogável desativando o cliente), prefira o servidor OAuth2 do Omniscol: veja OAuth2 / OIDC (provedor).

Procedimento

Gerar um token de API

  1. Um token de autenticação permite a um sistema externo (painel de controle, signage, agente IA via MCP) consultar os pontos de acesso de API que você selecionou.

  2. Vá em Administração → Importação / Exportação, depois abra a tela de compartilhamento com Compartilhamento. Você aí vê as chaves existentes, os seus rótulos e as suas datas de expiração eventuais.

  3. Crie uma chave se necessário. Informe um rótulo esclarecedor (Painel de controle finanças, Signage saguão principal, Agente IA Claude desktop) e uma expiração se a integração for temporária. Você poderá modificar essa expiração de chave mais tarde.

  4. Selecione a chave, depois marque os pontos de acesso de API que o token deve poder chamar. Mantenha a lista o mais curta possível. Escolha também a expiração do token se o acesso deve ser delimitado.

  5. Gere o token, depois copie imediatamente o JWT exibido. Ele não será mais reexibido e a sua expiração não poderá ser modificada. Utilize-o em seguida no cabeçalho HTTP Authorization: Bearer <token>.

  6. Para revogar o acesso, exclua a chave correspondente. Os tokens derivados dessa chave tornam-se inválidos.

Ver também