Documentatie voor klanten en partners van Digitaal Vlaanderen - bouwstenen Mijn Burgerprofiel, Verenigingsloket en e-loketondernemers
Koppelscenario's met de Mijn Burgerprofiel-widget
- 1 Scenario 1: Website zonder ACM/IDM koppelen met Mijn Burgerprofiel - eenvoudig toegangsbeheer
- 2 Scenario 2: Website zonder ACM/IDM koppelen met Vlaams Toegangsbeheer
- 3 Scenario 3: Website met ACM/IDM koppelen met Mijn Burgerprofiel - gekoppeld toegangsbeheer
- 4 Scenario 4: Website met ACM én IDM (de keuze van doelgroep) koppelen met Mijn Burgerprofiel
- 5 Impact van het gebruik van iframes op Mijn Burgerprofiel
- 6 Afmelden van een website die niet toegankelijk is voor anonieme gebruikers
Scenario 1: Website zonder ACM/IDM koppelen met Mijn Burgerprofiel - eenvoudig toegangsbeheer
Gemeente (of dienstenleverancier) vult aansluitingsformulier global header en footer in en geeft de test- en/of productie-URL door die gekoppeld moet worden met Mijn Burgerprofiel.
Team ACM/IDM registreert de URL en genereert de client-ID.
Team Aansluitingen configureert de widget-ID, koppelt de app-ID aan de URL en genereert de embedcode.
Gemeente start met de integratie van de embedcode, en legt een link naar de polyfill-libraries (indien nodig)
→ De gemeente is gekoppeld met Mijn Burgerprofiel - Mijn Burgerprofiel wordt geopend in een nieuwe tab.
Scenario 2: Website zonder ACM/IDM koppelen met Vlaams Toegangsbeheer
Gemeente vult het aansluitingsdossier bij ACM/IDM in.
Team ACM/IDM registreert de URL, en genereert de client-ID.
Gemeente implementeert de authenticatie via OAuth-client om aan te melden.
→ De gemeente is gekoppeld met Vlaams Toegangsbeheer en biedt aanmelden via ACM/IDM aan.
Scenario 3: Website met ACM/IDM koppelen met Mijn Burgerprofiel - gekoppeld toegangsbeheer
Gemeente (of dienstenleverancier) vult aansluitingsformulier global header en footer en geeft de URL door die gekoppeld moet worden met Mijn Burgerprofiel.
Team Aansluitingen configureert de widget-ID, koppelt de app-ID aan de URL en genereert de embedcode.
Gemeente start met de integratie van de embedcode.
4. Gemeente voegt JS toe om de MBP-headersessie en de eigen sessie aan elkaar te koppelen om:
De gemeentewebsite initieel te laten synchroniseren met Mijn Burgerprofiel.
De sessiestatus van de gemeente door te geven aan Mijn Burgerprofiel via
session.configure({ active:
< true/false afhankelijk of de sessie van de gemeentewebsite al bestaat of niet>Mijn Burgerprofiel te laten weten hoe om te gaan met aanmelden, afmelden en time-outs:
endpoints: {
loginUrl: '/login'
loginRedirectUrl: '/profile'
logoutUrl: '/logout',
Gedurende de life cycle van een pagina kan de configure-methode maar 1 keer worden opgeroepen. Alle volgende oproepen resulteren in een foutmelding. Dit script wordt typisch bij de page load gebruikt. Door loginURL en logoutURL te gebruiken wordt na aanmelden/afmelden teruggekeerd naar dezelfde pagina. Daardoor loopt het script telkens eenmalig en zijn er geen problemen met de configure methode.
Alternatief voor de logout/-methode: de aanvragen voor applicatie-logout afhandelen via JavaScript
Dit is een alternatief voor het implementeren van het log-out URL endpoint.
Het enige voordeel van dit script is dat de MBP-sessie eerst wordt afgemeld waarna MBP als je 30 sec. later opnieuw aanmeldt, geen “U bent nog aangemeld als …”-boodschap toont.
Scenario 4: Website met ACM én IDM (de keuze van doelgroep) koppelen met Mijn Burgerprofiel
In principe zorgt de ACM/IDM-component hiervoor. De klant moet hiervoor bij aansluiting ACM/IDM aangeven dat deze website bedoeld is voor burgers, maar ook voor VO-medewerkers, lokale besturen, …
Bij het aanmelden zal ACM/IDM de nodige rollen voorzien, zoals in het voorbeeld hieronder:
Na aanmelden moet de eigen website rekening houden met de keuze van doelgroep. Mijn Burgerprofiel weet automatisch binnen welke doelgroep de gebruiker is aangemeld, bijv. als VO-medewerker. Bij klikken op Mijn Burgerprofiel krijg je de vraag om door te gaan als de doelgroep burger.
Impact van het gebruik van iframes op Mijn Burgerprofiel
Een ACM/IDM-sessie is beperkt in de tijd. Zo is de default time-out bijv. 60 minuten. Bij de opzet en integratie met ACM/IDM kan de integrator ervoor kiezen om aanmelden gedurende 120 minuten actief te laten.
Een andere mogelijkheid is om via het MBP-widget de sessie te verlengen. Na 60 min. inactiviteit op de website (en dus ook in de Mijn Burgerprofiel-sessie) geeft de MBP-widget aan dat het de sessie wil sluiten via het event citizen_profile.session.extend
. Door dit te implementeren voor 120 minuten, kan aan de Mijn Burgerprofiel-sessie ook gevraagd worden langer (dus 120 minuten) actief blijven.
// Capture any widget that is present or will be present on the webpage.
vl.widget.client.capture(function (widget) {
// Only process the widget if widget is a global header.
if (widget.getPluginTypeId() === 'global_header') {
// Register for session extend event.
widget.on('citizen_profile.session.extend', function (event) {
// Perform custom website specific session extend logic.
console.debug('Received session extend request');
});
}
});
Nog een andere mogelijkheid is om via JavaScript het afmelden wegens inactiviteit te weigeren.
// Capture any widget that is present or will be present on the webpage.
vl.widget.client.capture(function (widget) {
// Only process the widget if widget is a global header.
if (widget.getPluginTypeId() === 'global_header') {
// Get the Citizen Profile Session extension from the global header widget.
widget.on('citizen_profile.session.logout.request', function (logoutRequest) {
// Acknowledge the logout request to prevent the session extension from performing default
// action due to response timeout (5 seconds).
logoutRequest.acknowledge();
// Evaluate the type of logout request.
switch (logoutRequest.getRequest().getReason()) (
// Logout was requested because the citizen profile extension has detected an expired
// session which prevents the user from accessing citizen profile without a step-up.
// This could be the result of an application logout or external logout.
case 'expired':
// You cannot prevent this
logoutRequest.accept();
break;
// Logout was requested by the user. This request should never be rejected in normal
// circumstances.
case 'user':
// Logout was requested as the citizen profile extension has detected inactivity from
// the user.
case 'inactivity':
// Accept the request for website logout.
logoutRequest.reject();
break;
default:
break;
}
});
}
});
Afmelden van een website die niet toegankelijk is voor anonieme gebruikers
Bij veel websites is de gebruiker standaard niet aangemeld, maar is er wel aanmeldfunctionaliteit beschikbaar. Via Mijn Burgerprofiel kan je aanmelden starten, en kan je je ook terug afmelden. In dat geval verloopt alles vlot. Want na het afmelden, komt de gebruiker terug op de website en het Mijn Burgerprofiel-widget wordt geïnformeerd dat er geen actieve sessie meer is. Zie ook: Technische documentatie global header - global footer | De status van de sessie rapporteren .
Sommige websites worden echter via een externe link aangeroepen en vragen de gebruiker om eerst aan te melden. De gebruiker is dus direct aangemeld zodra hij op de website is (als gevolg van doorlinken). Als de gebruiker zich afmeldt, verwijst de logout-URL naar een externe pagina. Daardoor is het Mijn Burgerprofiel-widget niet op de hoogte dat de sessie is afgemeld.
Als daarna de gebruiker zich daarna opnieuw aanmeldt binnen de 60 minuten, genereert de Mijn Burgerprofiel-widget de boodschap “U bent al aangemeld als …”. Dit is een gekend probleem en is voorlopig niet te vermijden zonder landingspagina voor anonieme gebruikers.
Oplossing 1: Gebruik een pagina toegankelijk voor anonieme (niet-aangemelde) gebruikers met het MBP-widget erop.
Oplossing 2: Mijn Burgerprofiel-team voorziet een hook/script waarbij de afmeldende pagina het MBP widget afmeldt.
case 'user':
// Logout was requested by the user.
logoutRequest.accept();
Oplossing 3: Mijn Burgerprofiel-team voorziet een hack waarbij opnieuw aanmelden ‘aanvaard’ wordt als procedure en de gebruiker gewoon aanmeldt.
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