Disclaimer: Deze pagina’s worden regelmatig bijgewerkt zodat ze altijd de meeste recente informatie bevatten. Aarzel niet om feedback te geven mochten er aanpassingen nodig zijn.
Authenticatie via Vlaams Toegangsbeheer
Bij Mijn Burgerprofiel gebruiken we het Vlaams Toegangsbeheer om authenticatie te faciliteren. Deze component voorziet automatisch single sign-on-functionaliteit (SS0-functionaliteit) zodat een burger zich niet telkens opnieuw moet aanmelden in verschillende applicaties.
Voor de Aanvraagmodule kan een formulier geraadpleegd worden op 2 manieren:
Embedded (verankerd) in Mijn Burgerprofiel
Stand-alone (als aparte applicatie)
De SSO-functionaliteit is gebonden aan deze beperkingen:
een beperkte levensduur
aanmelden moet in dezelfde browserinstantie
geen garantie dat de gebruikerscontext bewaard blijft tussen de verschillende applicaties
bij embedded gebruik kan de functionaliteit geïmpacteerd worden door de third-party cookieproblematiek
Single Sign-on via token
Deze functionaliteit is alleen beschikbaar als de Aanvraagmodule beschikt over een OpenID-Connect integratie met het Vlaams Toegangsbeheer.
Om een aantal beperkingen bij de klassieke werking van single sign-on op te lossen, gebruiken we Token Exchange om een OAuth Access Token te generen dat gebruikt kan worden door de Aanvraagmodule.
Voorwaarden
De Aanvraagmodule moet een trust-relatie hebben met de Mijn Burgerprofiel Client-ID (zie Bijlage - Mijn Burgerprofiel Client-ID)
Stroomdiagram
Implementatie
Standaard zal een aanvraagmodule gebruik maken van OpenId Connect (op basis van authorization code grant) in kader van geauthenticeerde formulieren. Hoewel dit geen probleem vormt voor een formulier dat in stand-alone modus getoond wordt kan dit problemen veroorzaken in embedded modus.
Gebruikerscontext doorgeven aan een aanvraagmodule
Om de gebruikerscontext door te geven aan een aanvraagmodule moet het OAuth Access Token - verkregen via de voorgaande Token Exchange - worden doorgegeven vanuit Mijn Burgerprofiel. Gezien de gevoeligheid van het OAuth Access Token moet dit altijd via een server-to-server operatie verlopen.
Om dit te bereiken dient de aanvraagmodule een API endpoint te voorzien volgens onderstaande API specificatie. Mijn Burgerprofiel (server) roept dit endpoint dan aan om een OAuth Access token te registreren. De registratie moet resulteren in een tijdelijk, éénmalig te gebruiken token (dat dan doorgegeven wordt bij het openen van de aanvraagmodule in de browser, zie verder).
Opmerking: Mijn Burgerprofiel zal gebruik maken van de Client ID vermeld in de Formulieren API response om de “audience” claim correct in te stellen tijdens het Token Exchange proces.
Het verkregen tijdelijk token zal door Mijn Burgerprofiel worden doorgegeven als query parameter via de formulier URL. De exacte waarde die gebruikt zal worden voor de query parameter naam dient door te stromen via de Formulieren API specificatie.
Voorbeelden:
https://formulier.vlaanderen.be/f6d35977-f45d-4710-befc-21e2812d83ea?token=<TEMP-TOKEN>
Verwerken van het token in de aanvraag module
Wanneer de aanvraagmodule een token ontvangt dient men volgende stappen uit te voeren:
Controleer dat het tijdelijk token niet vervallen is (we raden aan een periode < 5 minuten te nemen)
Controleer dat het tijdelijk token nog niet gebruikt is
Valideer het uitgewisselde OAuth Access Token (zie https://authenticatie.vlaanderen.be/docs/beveiligen-van-api/oauth-rest/rest-namens-gebruiker/rest-token-exchange/valideer-access-token/ )
Indien aan alle voorgenoemde voorwaarden is voldaan kan de aanvraagmodule een nieuwe sessie opstarten op basis van de gebruikerscontext beschikbaar gesteld via het OAuth Access Token.
Bijlage - Mijn Burgerprofiel Client-ID
Client-ID | Omgeving | URL |
---|---|---|
80689076-8c4a-4bef-abc4-82805e17988d | TNI | |
88f04968-d331-4ae0-99d9-c6efb845841f | Productie |