Handreiking FSC

Algemeen

Beheerder: Logius

Status bij Forum Standaardisatie: pas toe, leg uit (als onderdeel van Digikoppeling koppelvlakstandaard REST API's)

Waarde van de standaard

Federated Service Connectivity (FSC) is een standaard die is gericht op betaalbaar, veilig en beheerbaar gebruik van API’s. Het maakt deel uit van de Digikoppeling Koppelvlakstandaard voor REST API’s.

Belangrijke voordelen van de standaard zijn:

  • Standaardiseren van authenticatie, autorisatie en versleuteling, zodat veiligheid wordt geborgd en netwerkverbindingen eenvoudiger kunnen worden gelegd;
  • Expliciet maken van de instemming van partijen via digitale contracten voor het uitwisselen van gegevens, zodat hierover later geen discussie kan ontstaan en dat bij ontbinding per direct ook geen uitwisseling meer mogelijk is;
  • Delegeren van rechten aan derde partijen, zodat certificaten niet uit handen hoeven te worden gegeven en transparant is namens welke partij gegevens worden uitgewisseld;
  • Loggen van de verzending en ontvangst van berichten, met een gemeenschappelijke transactie-identificatie, zodat hier achteraf inzicht in kan worden gegeven;
  • Publiceren van beschikbare API’s, zodat deze eenvoudig kunnen worden gevonden en berichten naar de juiste fysieke adressen kunnen worden gestuurd;
  • Automatiseren van standaard beheertaken, zodat snel, eenvoudig/betaalbaar en op grote schaal nieuwe uitwisselingen kunnen worden gefaciliteerd en beheerd.

De standaard biedt waarde aan de volgende specifieke doelgroepen:

DoelgroepWaarde
Management
  • In controle zijn van specifieke gegevensuitwisselingen door hier expliciete goedkeuring aan te geven en deze ook geautomatiseerd te kunnen afhandelen.
  • Minder beveiligingsrisico’s lopen doordat certificaten niet uit handen hoeven te worden gegeven aan derde partijen.
  • Meer transparantie over namens welke partij gegevens uitgewisseld worden.
Ontwikkelaars
  • Eenvoudiger en geautomatiseerd kunnen vinden van beschikbare API’s en de bijbehorende technische metagegevens.
  • Op gestandaardiseerde wijze een mTLS verbinding kunnen opzetten, met gebruik van standaard componenten.
Technisch beheerders
  • Verlagen van beheerlast door het op gestandaardiseerde wijze kunnen configureren van netwerkverbindingen en het kunnen automatiseren van beheertaken.
  • Fouten en verstoringen in gegevensuitwisselingen beter kunnen analyseren door beschikbaarheid van standaard logging en correlatie van logregels.
Security officers
  • Toegang tot een API wordt automatisch gecontroleerd op basis van de geldigheid van het contract en de geldigheid van het certificaat
  • Delegatie is expliciet en wordt op een standaard manier gelogd.

Werking van de standaard

De standaard zorgt voor beveiligde verbindingen tussen aanbieders en afnemers op basis van PKI-Overheid en tweezijdige authenticatie. Daarbovenop zijn er mechanismen voor het publiceren en aanroepen van API’s en het autoriseren en loggen van deze aanroepen. Er wordt gebruik gemaakt van digitale (technische) contracten tussen partijen. Partijen kunnen via deze contracten worden geautoriseerd om API’s te publiceren of aan te roepen. Daarnaast kunnen zij worden gemachtigd door andere partijen voor het publiceren of aanroepen van API’s.

Er zijn verschillende componenten nodig om de FSC standaard te laten werken:

  • Outway: een proxy die API aanroepen logt en routeert van de afnemer naar de aanbieder;
  • Inway: een reverse proxy die API aanroepen ontvangt, valideert, logt en routeert naar de API implementatie;
  • Manager: beheert contracten en handelt autorisatieverzoeken af;
  • Directory: registreert partijen en API’s.

De standaard bestaat uit een kern en extensies. Logging is gedefinieerd in een extensie en beschrijft hoe logging van transacties op een uniforme manier kan worden ingericht, inclusief het gebruik van uniek gegenereerde transactie-identificaties. Deze extensie is een verplicht onderdeel als FSC, als deze wordt gebruikt in de context van de Digikoppeling standaard.

De volgende figuur geeft een overzicht van de componenten behorende bij de standaard.

Figuur 1: De architectuur van de Federated Service Connectivity standaard

Relatie met GDI domeinarchitectuur gegevensuitwisseling

De FSC standaard geeft een invulling aan de volgende principes in de domeinarchitectuur.

PrincipeInvulling
Burgers en organisaties hebben regie over hun eigen gegevens De standaard biedt organisaties regie doordat toegang tot API’s die gegevens verstrekken met FSC expliciet verleend en ingetrokken wordt. Daarnaast kunnen aan deze toegang fijnmazigere autorisaties worden gekoppeld, dit valt echter buiten het bereik van FSC zelf.
Uitwisseling van gegevens wordt gelogd als deze later aantoonbaar moet zijn De standaard biedt mechanismes voor logging van de verzending en de ontvangst van berichten en het correleren op basis van transactie-identificaties.
Voorwaarden en afspraken zijn expliciet en inzichtelijk De standaard legt afspraken tussen aanbieders en afnemers over toegestane verbindingen vast in de vorm van digitale contracten en verzorgt ook de afhandeling van deze contracten.

De standaard is ondersteunend aan de volgende functies in het functiemodel van de domeinarchitectuur:

  • Aansluiten partij
  • Beschikbaar stellen metagegevens
  • Beschikbaar stellen actuele gegevens
  • Beschikbaar stellen historische gegevens
  • Verlenen toegang
  • Loggen verzending
  • Loggen ontvangst

Positionering van de standaard

Relatie met gegevensleveringsovereenkomsten

FSC staat los van de juridische context waarbinnen gegevens mogen worden uitgewisseld. Dat betekent dat los van FSC zal moeten worden gezorgd dat er een contract, verwerkersovereenkomst, gegevensleveringsovereenkomst of gegevensleveringsprotocol bestaat. Met de FSC standaard worden er wel digitale contracten tussen partijen geconfigureerd om uitwisseling mogelijk te maken. Deze digitale contracten zitten echter potentieel op een ander niveau dan genoemde juridische overeenkomsten. Ze zeggen alleen iets over de verbinding die wordt gelegd en niets over de inhoudelijke gegevens die worden uitgewisseld. Daarmee zouden mogelijk meerdere overeenkomsten gebruik kunnen maken van hetzelfde digitale contract, als zij afhankelijk zijn van dezelfde verbinding. Bij het configureren van de digitale contracten is wel een expliciete handeling nodig voor het goedkeuren ervan. Het is echter ook mogelijk om deze handeling te automatiseren.

Gebruik door private partijen

De FSC standaard is een breed toepasbare standaard, met een specifiek profiel voor gebruik binnen de Nederlandse overheid. Onder dat profiel kunnen ook private partijen met een publieke taak deelnemen en gegevens uitwisselen. De standaard is echter ook toepasbaar in andere contexten. Hiervoor kan een eigen profiel en groep worden gedefinieerd, met eventueel andere trust anchors (certificaatautoriteiten) en een andere directory.

Gebruik voor open data

Veiligheid is een belangrijke waarde van de FSC standaard, maar het biedt ook voordelen als deze gebruikt wordt voor open data. Voor het aanleveren van open data aan centrale voorzieningen zijn authenticatie, autorisatie en onweerlegbaarheid van de aanlevering belangrijk. In meer algemene zin biedt FSC bijvoorbeeld onweerlegbaarheid door een bieden van gestandaardiseerde logging. Voor het publiek aanbieden en vervolgens anoniem afnemen van open data is de standaard niet bruikbaar.

Impact van de standaard

De OpenFSC referentie-implementatie van de standaard biedt implementaties van de FSC componenten. Daarnaast biedt deze een controller waarmee een gebruikersinterface wordt aangeboden en de andere componenten kunnen worden beheerd en ontsloten. OpenFSC beschikt ook over een auditlog, waarin ondertekening van contracten en andere beheeractiviteiten gelogd worden.

Er zijn verschillende implementatiescenario’s:

  1. Een organisatie implementeert zelf de standaard in eigen software. Dit kost relatief veel inspanning en ligt dus minder voor de hand.
  2. Een organisatie gebruikt de open source referentie implementatie OpenFSC. Dit is het meest eenvoudig te implementeren en heeft daarom vaak de voorkeur.
  3. Een organisatie kiest een hybride variant waarbij gebruik wordt gemaakt van bestaande tooling in combinatie met enkele open source FSC-componenten. Dit is relevant als organisaties bestaande gateway componenten willen hergebruiken om de functionaliteit van de inway en outway te implementeren.

Er is een landelijke directory beschikbaar die gebruikt kan worden voor communicatie tussen organisaties met een publieke taak. Daarin zijn twee groepen beschikbaar: een groep voor communicatie over het Internet en een groep voor communicatie over Diginetwerk. Voor communicatie binnen de overheid zouden deze twee groepen voldoende moeten zijn. Er wordt gewerkt aan de ondersteuning van “regulated areas”, waarmee domeinen API’s kunnen afschermen, zodat ze alleen binnen het domein vindbaar en bereikbaar zijn.

Aandachtspunten

FSC installatie nodig voor machtigen

Op dit moment hebben alle partijen die betrokken zijn bij gegevensuitwisseling een installatie van FSC nodig. Er wordt gewerkt aan de mogelijkheid dat partijen die alleen andere partijen machtigen, en zelf niet betrokken zijn bij de daadwerkelijke uitwisseling van gegevens, niet over een FSC installatie hoeven te beschikken. Zij zouden alleen een manier moeten hebben om deze machtiging veilig te verstrekken.

Relatie met andere standaarden

Relatie met OAuth

FSC maakt gebruik van de OAuth standaard voor het autoriseren van afnemers van API’s en het verstrekken van sessie-tokens. FSC voegt echter allerlei extra functionaliteiten toe die niet in OAuth aanwezig zijn, zoals gestandaardiseerde transactielogging en discovery van API’s. De OAuth tokens worden wel op een specifieke manier gebruikt; voor communicatie tussen FSC-specifieke componenten. Het token zit in een aparte header die wordt gebruikt tussen de outway en de inway.

In meer algemene zin ondersteunt FSC het autoriseren van organisaties voor toegang tot API’s. Daarbij kunnen organisaties andere organisaties machtigen en hun rechten delegeren. De autorisaties worden gebruikt voor communicatie tussen (server)systemen van de betrokken organisaties. OAuth is primair bedoeld om gebruikers machtigingen te laten geven aan systemen om gegevens ten behoeve van henzelf te raadplegen in andere systemen. Het is echter ook mogelijk om het te gebruiken voor volledig geautomatiseerde koppelingen tussen systemen. Dit heet de Client Credentials Flow.

Relatie met PKI-Overheid

FSC maakt gebruik van PKI certificaten voor het leggen van verbindingen. Als FSC wordt gebruikt binnen de Nederlandse overheid dan moeten dat PKI-Overheid certificaten zijn.

Relatie met Digikoppeling

FSC faciliteert verbindingen met HTTP-gebaseerde API’s. Als tussen organisaties van de Nederlandse overheid REST API’s worden gebruikt en beveiliging nodig is, dan moeten de API’s voldoen aan de Digikoppeling koppelvlakstandaard voor REST API’s. Dat betekent ondermeer dat moet worden voldaan aan de API Design Rules en dat FSC moet worden toegepast.

Relatie met Logboek Dataverwerkingen

De standaarden FSC en Logboek Dataverwerkingen zijn beide bedoeld voor het loggen van uitwisselingen van gegevens. In de FSC standaard is logging een extensie. Logging conform deze extensie is gericht op het loggen van de technische aspecten van de gegevensuitwisseling ten behoeve van technisch beheer. Het kan ook gebruikt worden om achteraf aan te tonen dat de gegevensuitwisseling heeft plaatsgevonden. Het Logboek Dataverwerkingen is gericht op het functioneel inzicht geven in verwerkingen van gegevens ten behoeve van verantwoording, bijvoorbeeld richting de burger. Een uitwisseling van gegevens is een specifiek voorbeeld van een verwerking van gegevens. Er kan een verwijzing worden gelegd tussen de logregels conform FSC Logging en Logboek Dataverwerkingen.

Relatie met Dataspace Protocol

FSC heeft deels dezelfde doelstellingen als het Dataspace Protocol. Beiden zijn ze gericht op het vindbaar maken van gegevens en het autoriseren van toegang tot gegevens. FSC is daarbij gericht op het ontsluiten van API’s en kan ook gebruikt worden voor downloads van datasets. Het dataspace protocol is meer gericht op het downloaden van datasets, maar kan ook gebruikt worden voor het ontsluiten via API’s. FSC is echter meer gericht op de infrastructurele kant. De directory van FSC is vooral een technische vindplaats, terwijl het Dataspace Protocol gebaseerd is op de DCAT standaard, die ook informatie gericht op eindgebruikers biedt. Autorisaties worden in FSC gedefinieerd op het niveau van API’s, terwijl het Dataspace Protocol gericht is op het ontsluiten van datasets en daarbij gebruik maakt van de ODRL standaard. Met ODRL is Policy Based Access Control (PBAC) mogelijk. Dit is ook wel mogelijk met FSC, maar vraagt dan een combinatie met een PBAC oplossing. Binnen de Nederlandse Overheid wordt daarbij voorgesorteerd op een op een Nederlands Profiel op de AuthZen standaard. De OpenFSC referentie-implementatie van de standaard biedt ook standaard integratie met PBAC engines.

Een meer gedetailleerde beschrijving van de relatie tussen FSC en het Dataspace Protocol is beschikbaar op federatief.datastelsel.nl.

Links