Ga naar inhoud

Interactiepatronen GBO

Dit document beschrijft de belangrijkste interactiepatronen voor GBO zoals afgeleid uit de use cases. In de patronen is op verschillende plekken sprake van een "dienst"; dit kunnen standaarden of centrale of decentrale voorzieningen zijn. Daar wordt in het hoofdstuk Capabilities dieper op ingegaan.

Gegevensverzoek van burger om gegevens via wallet te delen

Doel

Een burger vraagt een gegeven op als gekwalificeerde attestatie om in zijn/haar wallet op te nemen en te delen met een dienstverlener.

Interactie

sequenceDiagram autonumber actor Burger participant Wallet as EDI-Wallet participant QTSP as QTSP participant PubEAA as PuB-EAA<br/>voorziening participant VerifDienst as Verificatie-<br/>dienst participant Auth as Autorisatie<br/>voorziening participant Bron as Overheids-<br/>bron Note over Burger,Bron: Stroom A — PuB-EAA: overheidsinstantie geeft attribuut rechtstreeks uit rect rgb(225, 245, 238) Burger->>Wallet: Vraag attribuut op (OpenID4VCI initiate) Wallet->>PubEAA: Credential Request (OpenID4VCI) Note over PubEAA: PuB-EAA voorziening: aangeboden<br/>door bron zelf óf centraal via GBO PubEAA->>Auth: Autorisatieverzoek Auth->>Wallet: Authenticatie- & autorisatieverzoek Wallet->>Burger: Toont verzoek & vraagt consent Burger->>Wallet: Geeft consent & presenteert PID / eID Wallet->>Auth: Authenticatie / consent (OpenID4VP met PID / eID) Auth->>PubEAA: Autorisatie (incl. identificatie burger) PubEAA->>Bron: Bevraag bron (met access token) Bron-->>PubEAA: Attribuutgegevens PubEAA->>PubEAA: Kwalificeer attribuutgegevens PubEAA-->>Wallet: PuB-EAA credential Wallet-->>Burger: PuB-EAA opgeslagen in wallet end Note over Burger,Bron: Stroom B — QEAA: QTSP kwalificeert attribuut via verificatiedienst rect rgb(238, 237, 254) Burger->>QTSP: Attestatie Request<br />(incl. evt. stukken) Note over QTSP: QTSP verifieert attribuut<br/>via verificatiedienst QTSP->>VerifDienst: Verificatieverzoek Note over VerifDienst: Verificatiedienst: aangeboden<br/>door bron of centraal via GBO VerifDienst->>Auth: Autorisatieverzoek Auth->>Wallet: Authenticatie- & autorisatieverzoek Wallet->>Burger: Toont verzoek & vraagt consent Burger->>Wallet: Geeft consent & presenteert PID / eID Wallet->>Auth: Authenticatie / consent (OpenID4VP met PID / eID) Auth->>VerifDienst: Autorisatie (incl. identificatie burger) VerifDienst->>Bron: Bevraag bron Bron-->>VerifDienst: Attribuutgegevens VerifDienst->>VerifDienst: Verifieer attribuutgegevens VerifDienst-->>QTSP: Geverifieerd attribuut QTSP->>QTSP: Issue QEAA QTSP-->>Wallet: QEAA attestatie Wallet-->>Burger: QEAA opgeslagen in wallet end
Gegevensverzoek van burger om credential via wallet te delen

Toelichting

Iedere bronhouder kan in theorie gegevens uitleveren aan wallets, maar deze gegevens krijgen pas juridische waarde als ze gekwalificeerd zijn. Dat kwalificeren kan op twee manieren: de overheid ondertekent het gegeven, waardoor het een PuB-EAA wordt, of een gekwalificeerde verlener van vertrouwensdiensten (QTSP) doet dit.
Als de overheid het gegeven kwalificeert kan de bronhouder dit zelf doen, maar het kan schaalvoordeel bieden om dit te centraliseren in een GBO PuB-EAA-dienst. Als een QTSP het gegeven kwalificeert, moet deze QTSP het gegeven kunnen verifiëren via een verificatiedienst. Ook hier kan een bronhouder de dienst zelf aanbieden, of kan ervoor gekozen worden om dit te centraliseren in een GBO verificatiedienst. Ook de autorisatiedienst die door de Pub-EAA-dienst en de verificatiedienst aangeroepen wordt, kan door de bronhouder aangeboden worden, maar het biedt schaalvoordeel om dat te centraliseren in een GBO dienst.

Gegevensverzoek van Europese overheidsdienst aan Nederlandse overheidsbron

Doel

Een Europese overheidsdienst vraagt een gegeven (Evidence Request) aan een Nederlandse overheidsbron om een dienst aan een Nederlandse burger in het buitenland te kunnen leveren.

Interactie

sequenceDiagram autonumber participant BRG as Burger<br/>(rechthebbende) participant EU as EU dienst<br/>(SDG/OOTS) participant RINIS as Basisinrichting OOTS NL<br />(BZK/RINIS) participant GBO as GBO<br/>(GBO voorziening) participant BRH as Bronhouder<br/>(BRP / BD / …) rect rgb(250, 241, 251) Note over BRG,EU: ① Burger neemt dienst af BRG->>EU: Verzoek dienst Note over EU: Gegeven Bronhouder nodig end rect rgb(230, 241, 251) Note over EU,RINIS: ② OOTS-verzoek<br />(eDelivery/AS4) EU->>RINIS: Evidence Request (eDelivery/AS4) end rect rgb(250, 238, 218) Note over RINIS,GBO: ③ Doorzetten naar bron via GBO RINIS->>GBO: OOTS-payload (REST/JSON) Note over RINIS: eDelivery → REST ontkoppeling end rect rgb(225, 245, 238) Note over GBO,BRH: ④ Bronontsluiting (GBO generieke API) GBO->>BRH: API-aanroep (GBO-formaat) BRH->>GBO: Gegevens (REST/JSON) end rect rgb(225, 245, 238) Note over GBO: ⑤ Semantische mapping & logging (intern GBO) Note over GBO: GBO-formaat → SDG Evidence type · audit log · doelbinding end rect rgb(250, 238, 218) Note over GBO,RINIS: ⑥ Terugkoppeling naar OOTS basisinrichting GBO->>RINIS: Evidence Response (REST/JSON) Note over RINIS: REST → eDelivery vertaling end rect rgb(230, 241, 251) Note over RINIS,BRG: ⑦ Toestemming burger (User Review) RINIS->>BRG: Tonen te delen gegevens BRG->>RINIS: Keuze te delen gegevens end rect rgb(230, 241, 251) Note over EU,RINIS: ⑧ OOTS-antwoord<br />(eDelivery/AS4) RINIS->>EU: Evidence Response end rect rgb(250, 241, 251) Note over BRG,EU: ⑨ Burger neemt dienst af EU->>BRG: Levert dienst end
Interactiepatroon gegevensverzoek Europese overheidsdienst via SDG/OOTS

Toelichting

BZK heeft RINIS aangewezen als nationaal OOTS-toegangspunt (AS4/eDelivery), waar de OOTS basisinrichting in beheer is. Die geeft het Evidence Request als REST/JSON door aan GBO. GBO verzorgt de bronontsluiting en de semantische mapping naar het SDG Evidence-formaat. Bronhouders zien uitsluitend de GBO-API en hoeven geen OOTS-kennis te hebben.
De terugkoppeling volgt de omgekeerde route: GBO retourneert aan de OOTS basisinrichting, waar het bericht in AS4 wordt verpakt. Na de toestemmingsinteractie met de burger wordt het bericht als Evidence Response teruggestuurd naar de Europese overheidsdienst.

Gegevensverzoek van private partij met toestemming aan bronhouder (DvTP)

Doel

Een private dienstverlener haalt gegevens op bij een bronhouder op basis van een geldige toestemming van de burger.

Interactie

sequenceDiagram autonumber actor Burger participant DV as Dienst-<br/>verlener participant Auth as Authenticatie-<br/>dienst participant TV as Toestemmings-<br/>voorziening (GBO) participant PP as BSNk PP<br/>(pseudonimisering) participant TR as Toestemmings-<br/>register participant BRH as Bron-<br/>houder Note over Burger,BRH: Fase 1 — Toestemming verlenen rect rgb(225, 245, 238) Burger->>DV: Neemt dienst af DV->>Burger: Redirect naar toestemmingsvoorziening GBO<br/>(met scope + doelbinding) Burger->>TV: Volgt redirect TV->>Auth: Authenticatieverzoek Note over Auth: DigiD óf EDI-Wallet (eIDAS 2.0) Auth->>Burger: Authenticeer burger Burger-->>Auth: Authenticatie Auth-->>TV: BSN (geverifieerde identiteit) TV->>PP: Activeer BSN PP->>PP: Genereert PI/PP TV->>PP: Transformeer BSN PP-->>TV: Versleutelde PI/PP (VI/VP) TV->>Burger: Toon gegevens waarvoor toestemming<br/>gevraagd wordt (scope + doelbinding) Burger-->>TV: Verleent toestemming TV->>TR: Schrijf toestemming in register<br/>(VI · scope · doelbinding · TTL) TR-->>TV: consent_id TV->>DV: Redirect terug naar dienstverlener<br/>(met consent_id en VP) end Note over DV,BRH: Fase 2 — Gegevensopvraging bij bronhouder rect rgb(238, 237, 254) DV->>BRH: Gegevensverzoek<br/>(consent_id · mTLS / certificaat) BRH->>BRH: Authenticeer dienstverlener<br />(via certificaat) BRH->>BRH: Controleer bevoegdheid<br />(via FSC contract/Trusted List) BRH->>TR: Valideer consent_id<br/>(geldig? scope? TTL?)* TR-->>BRH: Consent geldig<br />(incl. VI) Note over TR, BRH: Als consent in token zit, is<br/>bevraging toestemmingenregister<br />niet nodig BRH->>BRH: Controleer data scope<br />(template match) BRH->>BRH: Ontsleutel VI naar BSN BRH-->>DV: Gevraagde gegevens end
Interactiepatroon Private Partij haalt gegevens op met toestemming van de burger

Toelichting

De dienstverlener kan rechtstreeks gegevens opvragen bij de bronhouder, maar heeft daarvoor toestemming van de burger nodig. Deze toestemming wordt door GBO afgehandeld via een toestemmingsvoorziening (een interface waar de burger vrij, specifiek, geïnformeerd en ondubbelzinnig de toestemming verleent) en een toestemmingsregister waar de toestemming wordt vastgelegd en waar deze gecontroleerd kan worden. De toestemmingsvoorziening moet de burger ook toegang geven tot de gegeven toestemmingen om te zien of die is gebruikt en om deze - indien relevant - in te trekken.

De dienstverlener gebruikt nooit het BSN van de burger. Daarom moet deze gepseudonimiseerd worden. De pseudonimisering moet zo gebeuren dat de dienstverlener deze telkens kan depseudonimiseren naar een eigen identificatie, die echter geen betekenis heeft voor andere partijen. De bronhouder moet het pseudoniem kunnen depseudonimiseren naar het originele BSN.

Bij controle van de gegevensvraag door de dienstverlener bij de bronhouder, authenticeert de bronhouder de dienstverlener op basis van het certificaat dat ook voor de versleuteling van het transport (mTLS) gebruikt wordt. Daarnaast moet de bronhouder controleren of de dienstverlener bevoegd is om gegevens op te vragen. Dat kan via FSC-contracten - de dienstverlener moet een contract hebben afgesloten om de API van de bronhouder te mogen bevragen. Dit kan ook op basis van een lijst met bevoegde afnemers (Trusted List). Zo'n lijst kan sectoraal beheerd worden, wat voorkomt dat een bronhouder met heel veel afnemers (bv. alle hypotheekverstrekkers) contracten moet afsluiten en beheren.