MAGDA algemene setup
Inleiding
MAGDA staat voor MAximale GegevensDeling tussen Administraties. MAGDA is een dienst van de Vlaamse overheid. MAGDA ontsluit een brede waaier aan authentieke overheidsbronnen. De MAGDA-connector is vrij uitgebreid en ontsluit een groot aantal beschikbare services.
Protocol
Onboardingsprocedure
Om aan te sluiten op MAGDA, moet de klant (dus de organisatie waarvoor Skryv de applicatie uitwerkt) een specifieke onboardingsprocedure doorlopen. Dit gebeurt per Skryv applicatie en per service die je wil aanspreken. Gedetailleerde info vind je op deze website. Hieronder een beknopt stappenplan.
Bepaal welke MAGDA-service je precies wil gebruiken (bv. geefPersoon).
Bepaal welke specifieke gegevens je via deze service wil opvragen (bv. domiciliegegevens) en voor welke doeleinden je de gegevens zal gebruiken.
MAGDA keurt je aanvraag goed en zet een testconnectie op. Je ontvangt volgende info:
URL endpoint
Key & certificaat (meer info)
Hoedanigheid (IPDC-nummer of aansluitingsnummer)
Uri
Je voert 50 test calls uit. MAGDA checkt vervolgens of deze correct zijn uitgevoerd.
MAGDA zet een productieconnectie op. Je ontvangt volgende info:
URL endpoint
Key & certificaat (meer info)
Hoedanigheid (IPDC-nummer of aansluitingsnummer)
Uri
Je voert nogmaals 50 test calls uit. MAGDA checkt opnieuw of deze correct zijn uitgevoerd.
Veilige communicatie
Om een veilige communicatie tussen Skryv en Magda tot stand te brengen, werken we met asymmetrische cryptografie op basis van een private key (geheim) en een public key (openbaar). Iedere request die we versturen naar Magda wordt versleuteld via onze private key, waarna Magda deze kan decrypteren op basis van onze public key.
De procedure om dit systeem op te zetten, verloopt volgens onderstaand stappenplan, en kan uitgevoerd worden via openSSL. Dit gebeurt per Skryv applicatie en per service die je wil aanspreken.
De Skryv developer genereert een private/public key pair. De private key blijft geheim en wordt gebruikt om data (zoals JWT-tokens) te ondertekenen. De private key en het wachtwoord ervan worden opgeslagen in AWS Secrets Manager.
De Skryv developer maakt een CSR (Certificate Signing Request) en stuurt deze naar Magda. De CSR bevat de public key en een handtekening gemaakt met de private key, wat bewijst dat de aanvraag van Skryv komt.
Magda ontvangt de CSR, valideert de handtekening op basis van de public key en koppelt de public key aan een certificaat. Het certificaat is een formele bevestiging dat de public key valide is en aan de specifieke Skryv applicatie is gekoppeld.
Magda levert het certificaat af. Dit wordt opgeslagen in AWS Secrets Manager.
Voor sommige services zoals DOSIS en Documentendienst moet op basis van de keys en het certificaat een .jwks-bestand aangemaakt worden. Dit kan aan de hand van een Python-script dat beschikbaar is bij het Skryv-team. Het .jwks-bestand wordt ter beschikking gesteld aan Magda.
Concreet verloopt de communicatie met Magda op basis van een JWT-token. De private key ondertekent dit JWT-token. Magda gebruikt vervolgens je public key (eventueel uit het .jwks-bestand) om de JWT-token te valideren. Op die manier is Magda er zeker van dat de uitgestuurde request ook effectief door jou is uitgestuurd.
Dependency toevoegen aan pom.xml bestand
Voeg onderstaande dependency toe aan het pom.xml bestand van je applicatie. Dit zorgt ervoor dat de connector code ingeladen wordt bij de build van de applicatie.
<dependency>
<groupId>com.skryv.connectors</groupId>
<artifactId>magda</artifactId>
</dependency>
Applicatie eigenschappen
Per service moet je enkele applicatie eigenschappen instellen. Deze vallen uiteen in twee delen. Het eerste deel bevat eigenschappen die de toegang regelen. Het tweede deel zijn eigenschappen die de connectie naar de service configureren.
Toegang
Opdat de connector toegang zou krijgen tot de MAGDA service, moet de applicatie beschikken over volgende instellingen.
Algemene instellingen
Of je nu één of meerdere MAGDA-services wil implementeren, onderstaande lijst is een overzicht van algemene, gedeelde eigenschappen geldig over alle services heen.
Eigenschap | Default | Beschrijving |
|---|---|---|
|
| Indien |
|
| URI die de aanroepende applicatie identificeert in de MAGDA SOAP request context. |
|
| IPDC-code die je aansluitingsrechten identificeert. |
|
| Application client ID for legal logging of MAGDA calls |
|
| If |
Overzicht services
Overzicht van binnen Skryv beschikbare MAGDA-services. Klik door op de service voor verdere details onder de sectie connectoren > connectoren details > MAGDA gegevensdeling.
{service} | Magda service | SSL (SOAP-services) | Specifieke eigenschappen |
|---|---|---|---|
| GeefBetalingenHandicap | gedeeld | nee |
| GeefVoertuig | specifiek | nee |
| GeefDmfaVoorWerknemers | specifiek | nee |
| Dossier (legacy) | specifiek | ja |
| Documentendienst | specifiek | ja |
| GeefFuncties | specifiek | nee |
| GiveCompany | specifiek | nee |
| GeefDossierHandicap | gedeeld | nee |
| GeefGezinssamenstelling | specifiek | ja |
| GeefHistoriekGezinssamenstelling | specifiek | ja |
| GeefHistoriekPersoon | specifiek | ja |
| GeefLeefLoonPeriodes | specifiek | nee |
| GeefPersoon | specifiek | ja |
| GeefHandicap | gedeeld | nee |
| GeefKindVoordelen | gedeeld | nee |
| GeefLeefloonbedragen | gedeeld | nee |
| GeefLoopbaanARZA | gedeeld | nee |
| Mobiliteit | REST API | ja |
| GeefAanslagbiljetPersonenbelasting | gedeeld | nee |
| Kadaster | specifiek | ja |
| RegistreerBewijs | gedeeld | nee |
| Repertorium | specifiek | nee |
| GeefJaarrekeningen | specifiek | nee |
| GeefSociaalStatuut | gedeeld | nee |
| GeefWerkrelaties | gedeeld | nee |
| ZoekEigendomstoestanden | specifiek | nee |
| ZoekPersoonOpAdres | gedeeld | nee |
| GeefZorgToeslag | gedeeld | nee |
SSL-instellingen
Specifiek
Vervang de placeholder {service} door de specifieke service die je wil implementeren.
Voorbeelden:
aws.zoekeigendomstoestanden.client.ssl.trust-store-pathaws.ri.client.ssl.trust-store-pathaws.poc.client.ssl.trust-store-pathaws.mobility.client.ssl.trust-store-path
Eigenschap | Default | Beschrijving |
|---|---|---|
| - | Pad naar het truststore‑certificaat (AWS Secrets Manager‑pad of lokaal bestand). |
| - | Pad naar de private key (AWS Secrets Manager‑pad of lokaal bestand). |
| - | Pad naar het wachtwoord van de private key (AWS Secrets Manager‑pad of lokaal bestand). |
| - | Lokaal bestandspad voor de gegenereerde PKCS12‑keystore (wordt tijdens runtime aangemaakt). |
| - | Lokaal bestandspad voor de truststore (JKS). |
|
| Beveiligingsmodus: |
|
| Gebruikersnaam voor ESB basic authentication. |
|
| Wachtwoord voor ESB basic authentication. |
|
|
|
| - |
|
Gedeeld
Eigenschap | Default | Beschrijving |
|---|---|---|
|
| Pad naar het lokale TrustStore-bestand (JKS) dat vertrouwde certificaten bevat voor SSL-verificatie. |
|
| Pad naar het lokale KeyStore‑bestand (JKS/PKCS12) met de clientcertificaten voor mTLS. |
|
| Pad (bv. AWS Secrets Manager of SSM) naar het certificaat dat in het TrustStore wordt geplaatst. |
|
| Pad (bv. AWS Secrets Manager of SSM) naar de private key die voor mTLS gebruikt wordt. |
|
| Pad (bv. AWS Secrets Manager of SSM) naar het wachtwoord van de private key. |
Service url instellingen
Dit is een verplichte instelling voor elke service die je wil aanspreken. Vervang {service} door de specifieke service in kwestie.
Eigenschap | Default | Beschrijving |
|---|---|---|
| - | Dit is een verplichte instelling voor elke service die je wil aanspreken. |
Voorbeelden:
skryv.connectors.magda.ebox.service-urlskryv.connectors.magda.gp.service-urlskryv.connectors.magda.zoekeigendomstoestanden.service-urlskryv.connectors.magda.zorgtoeslag.service-url
Service specifiek
Toegespitst op de service die je wil gebruiken, voeg je eventueel nog enkele specifieke applicatie eigenschappen toe.
Performantie via resilience4j
Je kan de performantie van de connectie configureren via resilience4j. Klik hier voor meer info over connectoren, performantie en hoe je dit kan configureren.