Documentatie voor klanten en partners van Digitaal Vlaanderen - bouwstenen Mijn Burgerprofiel, Verenigingsloket en e-loketondernemers
Aanvraagmodule - Authenticatie via Single Sign-on (SSO)
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 - kies een duurtijd van < 5 minuten
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 de Aanvraagmodule kan gebruiken.
Voorwaarde
De Aanvraagmodule moet een trust-relatie hebben met de Mijn Burgerprofiel Client-ID - zie Bijlage: Mijn-Burgerprofiel-Client-ID
Stroomdiagram
Implementatie
Standaard maakt de Aanvraagmodule gebruik van OpenID Connect (op basis van Authorization Code grant) voor geauthenticeerde formulieren. Dit verloopt vlot voor formulieren die in stand-alone modus getoond worden.
Voor formulieren die embedded worden getoond, kan de burger een fout te zien krijgen tijdens het OpenID Connect-aanmeldproces omdat de Identity Provider (ACM) cookies nodig heeft. Doordat de Identity Provider op een ander domein werkt dan burgerprofiel.be, zal hij die niet kunnen opslaan. Vandaag blokkeren de meeste browsers immers Third Party Cookies. Als de browser wel Third Party Cookies toelaat, is er geen probleem.
Gebruikerscontext doorgeven aan een Aanvraagmodule
Hiervoor moet mijn Burgerprofiel het OAuth Access Token - verkregen via de Token Exchange - doorgeven. Door de gevoeligheid van het OAuth Access Token moet dit altijd via een server-to-server operatie verlopen als volgt:
De Aanvraagmodule moet een API-endpoint voorzien volgens de onderstaande API-specificaties.
Mijn Burgerprofiel (server) roept dat API-endpoint aan om een OAuth Access token te registreren.
Het resultaat van die registratie moet een tijdelijk, éénmalig te gebruiken token zijn, dat wordt doorgegeven zodra de Aanvraagmodule wordt geopend in de browser.
Aanvraagmodule - SSO Token (Swagger)
Mijn Burgerprofiel geeft het tijdelijke token door als query-parameter via de formulier URL. De exacte waarde die gebruikt wordt voor de query-parameternaam moet doorstroome via de Formulieren API-specificatie.
Voor een overzicht van relevante foutboodschappen, zie ook Algemene REST API-specificaties | Standaard foutberichten en Algemene REST API-specificaties | Specifieke foutberichten
Voorbeeld:
https://formulier.vlaanderen.be/f6d35977-f45d-4710-befc-21e2812d83ea?token=<TEMP-TOKEN>
Het token verwerken in de Aanvraagmodule
Doorloop de volgende stappen nadat de Aanvraagmodule het token heeft ontvangen:
Controleer dat het tijdelijke token niet vervallen is.
Bijvoorbeeld: een aanvraagmodule kan het geregistreerde access token samen met het tijdelijk token voor 2 minuten opslaan in een cache. Op het moment dat een tijdelijk token dan gebruikt wordt, kan de aanvraagmodule controleren of het nog in de cache aanwezig is (en het token dan ook uit de cache verwijderen, zodat het niet meermaals gebruikt kan worden).Controleer dat het tijdelijk token nog niet gebruikt is.
Valideer het uitgewisselde OAuth Access Token, zie ook https://authenticatie.vlaanderen.be/docs/beveiligen-van-api/oauth-rest/rest-namens-gebruiker/rest-token-exchange/valideer-access-token/
Indien aan alle voorwaarden is voldaan, kan de Aanvraagmodule een nieuwe sessie opstarten op basis van de gebruikerscontext die beschikbaar is 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 |
Related pages
Dit is een officiële website van de Vlaamse overheid - Uitgegeven door Digitaal Vlaanderen: https://www.vlaanderen.be/digitaal-vlaanderen
DISCLAIMER: http://www.vlaanderen.be/nl/disclaimer
TOEGANKELIJKHEID:
http://www.vlaanderen.be/nl/toegankelijkheid