Vragen om toestemming

Het vragen om toestemming begint met maken van de URL die de consument krijgt (bv per e-mail) om op te klikken.

Door het klikken op deze URL wordt de consument doorgeleid naar de login pagina.Hier krijgt de consument de mogelijkheid om in te loggen door te klikken op een van de beschikbare authenticatie middelen.

Samenstellen url

De url heeft de volgende componenten:

Component Waarde

authorization_endpoint

De waarde van het authorization_endpoint attribuut uit de OAuth Configuration die hier te vinden is. Voor de productieomgeving is dat: https://www.mijnenergiedata.nl/autorisatieregister/oauth2/authorize. Acceptatieomgeving: https://www.acc.mijnenergiedata.nl/autorisatieregister/oauth2/authorize.

response_type

De response_type is altijd code

client_id

De Client ID die bij het aanmaken van de dienst is ingevuld.

redirect_uri

De callback URL waarnaar de OAuth server de browser van de energieconsument verwijst na afronding van het toestemmingsproces (al dan niet succesvol). Deze URL dient daarom publiek beschikbaar te zijn.

scope

Verwijst naar de 'authorized scope' van een data product waar een consument toestemming voor gaat geven. Dit mag een lijst zijn indien er toestemming wordt gevraagd voor meerdere producten.

Zie scopes voor meer informatie.

verify (alleen verplicht bij particuliere consumenten)

Het huisnummer dat de energieconsument heeft opgegeven (zonder toevoeging). Dit wordt gebruikt om te verifiëren dat het huisadres waarvoor de energieconsument zich identificeert, overeenkomt met de gegevens die bij de afnemer zijn opgegeven.

state

Een unieke referentie naar aanroep, die door de initiërende partij (d.w.z. de afnemer) wordt bepaald. Deze referentie wordt ook opgenomen in de callback URL, zodat kan worden bepaald om welke autorisatie-sessie het gaat.

code_challenge

Client side gegenereerde code challenge t.b.v. PKCE flow

code_challenge_method

S256

Voorbeeld

Stel:

client_id redirect_uri scope huisnummer

afnemende-dienst-client-id

https://server-address/contextpath/callback

consumption_data

8

Dan wordt de URL als volgt:

https://www.mijnenergiedata.nl/autorisatieregister/oauth2/authorize
?response_type=code
&client_id=afnemende-dienst-client-id
&redirect_uri=https://server-address/contextpath/callback&scope=consumption_data
&verify=8
&state=3507d827-bad6-498a-b615-3c20ed175b6b
&code_challenge=da2rYiBWusWh_Y8HGMSnmZru7boDQn_tu9EvYiS0AhE
&code_challenge_method=S256

Toestemmingspagina

De consument komt na het inloggen bij de autorisatie dienst uit op de Toestemming geven pagina.

Hier wordt een overzicht getoond met informatie over de gegevens waarvoor toestemming gegeven wordt en de aansluitingen die gevonden zijn voor de consument op basis van het adres dat verkregen wordt van de autorisatie dienst.

Indien het een doorlopende toestemming betreft kan de consument nog een keuze maken voor de duur van de toestemming.

  • Onbepaald

  • 1 maand

  • 1 jaar

  • 5 jaar.

Callback

Zodra de consument toestemming geeft, vindt er een redirect plaats naar de opgegeven callback url. De afnemende dienst ontvangt op die url de zg authorization_code. Met de ontvangen authorization_code kan vervolgens een access_token worden opgehaald bij het autorisatieregister.

Ontvangen access token

Het access_token bevat het id van de gegeven toestemming, in het geval van een doorlopende toestemming kan dit consent-id gebruikt worden om informatie te krijgen over de gegevens toestemming. Zie consent info endpoint.

Gegevens ophalen met access token

Het access_token is 15 minuten geldig, binnen deze 15 minuten moet de data worden opgehaald.

Indien het een doorlopende toestemming betreft, dan wordt er ook een refresh_token meegeleverd bij het inwisselen van de authorization_code. Met dit refresh_token kan er een nieuw access_token worden opgehaald.

Dit refresh_token moet worden opgeslagen om periodiek een access_token op te halen om daarmee de data te kunnen ophalen.

Zie Data ophalen voor de beschrijving.