Naar hoofdinhoud
Documentatie

Moodle-plug-in

Wat de plug-in doet

local_mcpconnector is de Moodle-kant van MoodleMCP. Hij koppelt je site via een ondertekende API aan het paneel, maakt rolgebonden webservices aan en zet Moodle-tokens om in intrekbare MCP-sleutels voor de gebruikers die je kiest.

Hij praat met het paneel en met geen enkele andere derde partij. Er is een MoodleMCP-account voor nodig: op zichzelf doet de plug-in niets.

Installeren

  1. Installeer de plug-in via Sitebeheer → Plug-ins → Plug-ins installeren (upload de zip, of kopieer de map naar moodleroot/local/mcpconnector) en rond de upgrade af.
  2. Open Sitebeheer → Plug-ins → Lokale plug-ins → MCP Connector → Licentie.
  3. Plak de paneel-URL, de licentiesleutel, het paneelgeheim en de MCP-eindpunt-URL die je kreeg bij het verbinden van je site.
  4. Klik op Licentie valideren. Een groene bevestiging betekent dat zowel de handtekening als de site-URL kloppen.

Wat het toevoegt aan Moodle

OnderdeelWaarvoor
LicentiePaneel-URL, licentiesleutel, ondertekeningsgeheim en MCP-eindpunt.
ServicesDe rolgebonden webservicedefinities en hun toegestane functies.
GebruikersIemand toewijzen aan of weghalen bij een service — dat geeft de sleutel uit of trekt hem in.
SleutelsLevenscyclus per gebruiker: schorsen, activeren, intrekken, opnieuw genereren en mailen, en de status afstemmen met het paneel.
InstellingenAutomatische synchronisatie per rol en de sjabloon voor de e-mail met de sleutel.

Gebruikers voorzien van toegang

Wijs onder Gebruikers iemand toe aan de service die bij diens rol hoort. De plug-in maakt een webservicetoken voor die persoon, stuurt het naar het paneel, en het paneel geeft een MCP-sleutel terug. De waarde wordt per e-mail naar de gebruiker gestuurd en één keer getoond: Moodle bewaart alleen de laatste vier tekens en de status.

Zet automatische synchronisatie aan voor een rol als iedereen met die rol automatisch toegang moet krijgen zodra die verschijnt.

Toegang intrekken

Een sleutel schorsen of intrekken vanuit de plug-in wordt doorgegeven aan het paneel, en de sleutel werkt bij de eerstvolgende aanroep niet meer. De Moodle-gebruiker verwijderen trekt hem ook in. Hetzelfde kan vanuit het paneel, in Organisatie → Moodle → MCP-sleutels: beide weergaven stemmen op elkaar af.

Wat naar het paneel wordt gestuurd

Bij het toekennen stuurt de plug-in de volledige naam van de gebruiker, diens effectieve Moodle-rollen en het voor die persoon gemaakte webservicetoken; de sleutel gaat naar diens e-mailadres. Het paneel bewaart het token versleuteld en de sleutel gehasht. De privacy-instellingen van de plug-in bevatten de machineleesbare verklaring.

Webservicetokens en MCP-sleutelwaarden worden nooit naar Moodle-logs geschreven. Sleutels worden per e-mail geleverd, dus behandel die mailboxen daarnaar.

Voor plug-in-ontwikkelaars

Alle eindpunten tussen plug-in en paneel zijn ondertekend en per licentie begrensd:

EindpuntDoel
POST /api/moodle/verifyLicentie- en URL-controle vanuit de plug-in-instellingen
POST /api/moodle/keysEen token registreren → MCP-sleutel (waarde één keer teruggegeven)
POST /api/moodle/keys/listAlleen metadata (id's, laatste 4, status — nooit geheimen)
POST /api/moodle/keys/revokeIntrekken op sleutel-id (idempotent en definitief)
POST /api/moodle/keys/suspendSchorsen of heractiveren op sleutel-id

De handtekening reist in een header:

x-panel-signature: t=<unix-seconden>,v1=<hex hmac_sha256(paneelgeheim, `${t}.${ruweBody}`)>
  • Wat wordt ondertekend is de ruwe body van het verzoek, met een punt achter het tijdstempel geplakt — elke wijziging van de body maakt de handtekening ongeldig.
  • Verzoeken ouder (of jonger) dan 300 seconden worden geweigerd, wat het tijdvenster voor replay sluit.
  • Een onbekende licentie en een verkeerde handtekening geven allebei 403 invalid_credentials, zodat de API niet bruikbaar is om installaties op te sommen.
  • De plug-in stuurt bij elk verzoek x-panel-version: 2, zodat het protocol kan evolueren zonder oudere installaties te breken.

De plug-in valt onder GPL v3 of nieuwer; broncode en meldingen staan op github.com/studiolxd/moodle-local_mcpconnector.