Saltar para o conteúdo principal
Documentação

Plugin do Moodle

O que o plugin faz

O local_mcpconnector é a parte do MoodleMCP que vive no Moodle. Liga o seu site ao painel através de uma API assinada, cria serviços web limitados por papel e transforma tokens do Moodle em chaves MCP revogáveis para os utilizadores que escolher.

Comunica com o painel e com mais nenhum terceiro. Requer uma conta MoodleMCP: sozinho, o plugin não faz nada.

Instalação

  1. Instale o plugin em Administração do site → Plugins → Instalar plugins (carregue o zip, ou copie a pasta para raizmoodle/local/mcpconnector) e conclua a atualização.
  2. Abra Administração do site → Plugins → Plugins locais → MCP Connector → Licença.
  3. Cole o URL do painel, a chave de licença, o segredo do painel e o URL do ponto de acesso MCP que obteve ao ligar o seu site.
  4. Clique em Validar licença. Uma confirmação a verde significa que a assinatura e o URL do site estão corretos.

O que acrescenta ao Moodle

SecçãoPara que serve
LicençaURL do painel, chave de licença, segredo de assinatura e ponto de acesso MCP.
ServiçosAs definições de serviços web por papel e as funções permitidas.
UtilizadoresAssociar ou remover um utilizador de um serviço — o que emite ou revoga a sua chave.
ChavesCiclo de vida por utilizador: suspender, ativar, revogar, regenerar e enviar por email, e reconciliar o estado com o painel.
DefiniçõesSincronização automática por papel e modelo do email de entrega das chaves.

Atribuir acesso a utilizadores

Em Utilizadores, associe alguém ao serviço correspondente ao seu papel. O plugin gera um token de serviço web para essa pessoa, envia-o ao painel, e o painel devolve uma chave MCP. O valor é enviado por email ao utilizador e mostrado uma única vez: o Moodle guarda apenas os últimos quatro caracteres e o estado.

Ative a sincronização automática de um papel se quiser que todos os utilizadores com esse papel recebam acesso automaticamente.

Revogar o acesso

Suspender ou revogar uma chave no plugin propaga-se ao painel, e a chave deixa de funcionar na chamada seguinte. Eliminar o utilizador do Moodle também a revoga. Pode fazer o mesmo no painel, em Organização → Moodle → Chaves MCP: as duas vistas reconciliam-se.

O que é enviado ao painel

Ao atribuir acesso, o plugin envia o nome completo do utilizador, os seus papéis efetivos no Moodle e o token de serviço web gerado para ele; a chave segue para o seu endereço de email. O painel guarda o token cifrado e a chave em hash. As definições de privacidade do plugin incluem a declaração legível por máquina.

Os tokens de serviço web e os valores das chaves MCP nunca são escritos nos registos do Moodle. As chaves são entregues por email, por isso trate essas caixas de correio em conformidade.

Para programadores do plugin

Todos os pontos de acesso entre plugin e painel são assinados e limitados por licença:

Ponto de acessoFinalidade
POST /api/moodle/verifyVerificação de licença e URL a partir das definições do plugin
POST /api/moodle/keysRegistar um token → chave MCP (valor devolvido uma vez)
POST /api/moodle/keys/listListagem só de metadados (ids, últimos 4, estado — nunca segredos)
POST /api/moodle/keys/revokeRevogar por id da chave (idempotente e definitivo)
POST /api/moodle/keys/suspendSuspender ou reativar por id da chave

A assinatura viaja num cabeçalho:

x-panel-signature: t=<segundos-unix>,v1=<hex hmac_sha256(segredoPainel, `${t}.${corpoBruto}`)>
  • O que é assinado é o corpo bruto do pedido, unido por um ponto após a marca temporal — qualquer alteração ao corpo invalida a assinatura.
  • Pedidos com mais de 300 segundos (ou adiantados) são rejeitados, o que fecha a janela de repetição.
  • Uma licença desconhecida e uma assinatura inválida devolvem ambas 403 invalid_credentials, pelo que a API não serve para enumerar instalações.
  • O plugin envia x-panel-version: 2 em cada pedido, para que o protocolo possa evoluir sem quebrar instalações mais antigas.

O plugin é distribuído sob GPL v3 ou posterior; o código e os problemas estão em github.com/studiolxd/moodle-local_mcpconnector.