Merk op, het afsprakenstelsel DSGO is nog in ontwikkeling. Zie de Aanpak ontwikkeling afsprakenstelsel voor meer informatie. Voor vragen of opmerkingen neem contact op met afsprakenstelseldsgo@digigo.nu

Access token

Bij het aanbieden van datadiensten is autorisatie een essentieel onderdeel. Een (potentiële) datadienstgebruiker moet aan tonen dat ze geautoriseerd zijn om gebruik te maken van een datadienst van een datadienstaanbieder. Een datadienstaanbieder kan ervoor kiezen om hier access tokens voor te gebruiken als autorisatie-informatie bij haar datadienst. Access tokens maken het mogelijk voor datadienstaanbieders om de functionaliteit van autorisatie onafhankelijk uit te voeren van de datadienst. Voor de gebruiker maakt een access token het mogelijk om eenmalig te autoriseren voor de aanvraag van meerdere diensten. Daarmee biedt is het concept van een access token een schaalbare oplossing die in de praktijk vaak voorkomt.

In het DSGO wordt het OAuth 2.0 protocol gebruikt om access tokens op te halen. Voor machine-to-machine (M2M) interacties kan een access token verkregen worden via een /token endpoint, volgens OAuth 2.0 client credentials. Bij het aanvragen van de access token wordt de identifiteit van de aanvrager geauthenticeerd. Hiermee wordt authenticatie op datadienst niveau geborgd. Hiervoor wordt een getekende JWT gebruikt volgens de OAuth 2.0 JWT bearer profile (een Authenticatie JWT). Tevens wordt bij de aanvraag van een access token gecontroleerd wat de status van de aanvrager is binnen het DSGO (zie hieronder).

DSGO.Basis: Als partijen gebruik willen maken van een access token dan, MOETEN ze deze beschikbaar stellen via een /token endpoint

In de onderstaande figuur staat het interactiemodel beschreven waarmee een access token kan worden opgehaald. Dit interactie model bestaat uit drie kern elementen om een access token te kunnen ophalen: het ophalen van de lijst van vertrouwde certificaat autoriteiten, het valideren van het certificaat, en het controle van de status van de partij. Dit interactiemodel is volledig in lijn met de authenticatie flow van iSHARE (v2.0). Voor meer details over de werking van de specifieke endpoints en de implementatie hiervan zie API specifications.

Merk op, in dit voorbeeld interactiemodel haalt een datadienstgebruiker een access token op bij een datadienstaanbieder. De rollen kunnen ook anders ingevuld worden afhankelijk van de situatie, bijvoorbeeld als een datadienstaanbieder een token opvraagt bij een marktvoorziening.

Ophalen lijst van vertrouwde Certificaatautoriteit

Elk verzoek voor een access token in het DSGO moet altijd ondertekend zijn door een certificaat dat is uitgegeven door een certificaatautoriteit op de vertrouwde lijst van DSGO. Elke deelnemer kan de vertrouwde lijst opvragen bij de /trusted_list endpoint van de stelselcatalogus, zie /trusted_list voor meer details.

Certificaat validatie

Een verzoek voor een access token bevat een getekende Basis JWT om informatie over de identiteit van de aanvrager te communiceren. Wanneer een partij een verzoek ontvangt voor een access token, moet de ontvangende partij het certificaat waarmee deze is getekend valideren.

DSGO.Basis: Partijen MOETEN verifiëren dat het certificaat waarmee de Basis JWT is getekend uitgegeven en ondertekend is door een certificaatautoriteit op de vertrouwde lijst van DSGO

Controle status partij

Nadat het certificaat van de aanvrager is gecontroleerd, moet de identiteit van de partij en haar status binnen het DSGO gecontroleerd worden. De identiteit van de partij wordt geauthenticeerd door de identiteit vanuit het certificaat te vergelijken met die in het verzoek om een access token, voor meer informatie zie /token endpoint. De status van een partij binnen het DSGO kan worden gecontroleerd bij de /parties endpoint van de stelselcatalogus, zie /parties voor meer details.