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 |
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.