Datastructuur access token

versie: 19-06-2023 Status: definitief

Incrementele implementatie
Het iWlz-netwerkmodel wordt incrementeel geïmplementeerd aan de hand van het afsprakenstelsel iWlz-netwerkmodel. Het eerste deel dat wordt geïmplementeerd is het Indicatieregister. Dit artikel geeft weer hoe de datastructuur in deze implementatiestap wordt geimplementeerd.

Dit artikel geeft inzicht in de structuur van het access token dat kan worden gebruikt voor het raadplegen van registers. Het access token wordt uitgegeven door de autorisatie server van een bronhouder aan de web services afnemer. Het access token heeft de structuur van een JSON Web Token (JWT).

1. Opbouw JWT indicatieregister

1.1 Header

De header van het access token ziet er als volgt uit:

{ "alg": "RS256", "kid": "82CBE846-D24E-458A-A6E6-D5098E096D52", "typ": "JWT" }

1.2 Payload

De payload van het access token ziet er als volgt uit:

{ "aud": [ http://ciz.vecozo/netwerkmodel/v1/graphql ], "exp": 1677513301, "jti": "fbd64991-e625-4a22-86ce-b705385574a0", "iat": 1676908501, "iss": "auth.team-nid", "nbf": 1676908381, "sub": "a5d99af1-111c-4a17-ae6f-e117efad0b31", "client_id": "144feaa7-74f3-4c5d-8a89-215ea527fdec", "subjects": { "nid": "" }, "scopes": { <<AFSPRAAK PER UITWISSELPROFIEL>> }, "consent_id": "6d101f9a-b535-4fa8-bf73-b1f92d4499cf", "client_metadata": {} }

1.3 Signature

De handtekening dient als volgt te worden gegenereerd:

RSASHA256(   SECRET, base64UrlEncode(header) + "." + base64UrlEncode(payload) )

SECRET is een private sleutel van de autorisatieserver. De publieke sleutel is niet openbaar Het is voor de ontvanger van het access token niet mogelijk om de signature te valideren, maar dat is niet erg want de validatie van het access token gebeurt door nID.

2. Token en gebruik indicatieregister

Het te gebruiken bearer token (JWT) is het resultaat van:

base64urlEncoding(header) + '.' + base64urlEncoding(payload) + '.' + base64urlEncoding(signature)

De JWT heeft uiteindelijk een vorm zoals:

Om de JWT te gebruiken dient deze te worden opgenomen in de HTTP-header Authorization, gebruikmakend van het Bearer schema. De header ziet er dan als volgt uit: