Table of Contents | ||||
---|---|---|---|---|
|
Eenvoudig vs. gekoppeld toegangsbeheer
De global header integreren op een gastwebsite kan op de volgende 2 manieren:
Met eenvoudig toegangsbeheer: gebruikers kunnen alleen als burger aanmelden. Hiervoor moet de gastwebsite de embed-code toevoegen, zoals gedocumenteerd hier https://vlaamseoverheid.atlassian.net/wiki/spaces/IKPubliek/pages/5930157586/Widgets+toevoegen+aan+een+webpagina#Een-widget-toevoegen-aan-een-webpagina-via-embedcode .
Info |
---|
Ook bij een global header met eenvoudig toegangsbeheer is de link naar het e-loket ondernemers en het Verenigingsloket beschikbaar. |
Met gekoppeld toegangsbeheer: gebruikers kunnen meteen aanmelden in verschillende doelgroepen via ACM/IDM, bijv. als burger, als ambtenaar en/of als economische actor. De gastwebsite moet hiervoor de doelgroepswissel expliciet toevoegen. Het openen van het pad dat bij die wissel hoort (
switchCapacityUrl
), start de flow voor gericht aanmelden. Zie ook: Wisselen van account (doelgroepen)
Info |
---|
Om gericht te kunnen aanmelden en de gebruiker de keuze te geven tussen meerdere doelgroepen, moet Toegangsbeheer (ACM) eerst valideren dat de gevraagde identiteit een toegelaten identiteit is. Zie ook de ACM-technische informatie “Gericht aanmelden”. De doelgroep zelf wordt bepaald in de ACM-schermen. De global header reageert op basis van de informatie in de ACM-schermen. Zie ook: https://www.vlaanderen.be/acm-idm-standaard-aansluitingsproces |
Drawio | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Integratie van de global header met eenvoudig toegangsbeheer (ACM)
...
Met activiteitstracking wordt nagegaan of een gebruiker actief is met de global header. Bij inactiviteit van 20 minuten wordt de gebruiker automatisch afgemeld.
Info |
---|
Activiteitstracking is optioneel en enkel te gebruiken indien de gastwebsite bijv. bijkomende user tracking nodig heeft. Dit kan het geval zijn wanneer er een iframe op de pagina dat niet standaard getraceerd wordt. |
Om de activiteitstracking voor een webpagina correct te laten werken, moet de extensie op de hoogte blijven van activiteit op de webpagina. In het onderstaande codevoorbeeld staat een eenvoudige manier om activiteit van een gebruiker te detecteren en te rapporteren aan de extensie.
...
Note |
---|
Gedurende de life cycle van een pagina kan de configure-methode maar één zoveel keer worden opgeroepen . Alle volgende oproepen resulteren in een foutmeldingals nodig. |
Als de aanmeldstatus op de gastwebsite moet wijzigen, moet de logout-methode worden opgeroepen zodat de nodige flows gestart worden om correct af te melden.
...
Optioneel kan hiervoor ook een event worden gebruikt: de logout.request geeft de acknowledge callback mee en vervangt dan het standaard redirect gedrag.
Fallback door featuredetectie
De login- en logout-URL's van de Mijn Burgerprofiel-extensie zorgen dus voor het aan- en afmelden vanuit de global header door de nodige informatie op te vragen via de ACM-integratie. Maar wanneer de global header uitzonderlijk niet beschikbaar is, bijvoorbeeld omdat het Widget-platform niet actief is, is het aangeraden om de Burgerprofiel-feature detectie uit te voeren.
...
Code Block |
---|
<!DOCTYPE html> <html> <head> ... </head> <body> ... <a id="login-button" href="/login">Login</a> <a id="logout-button" href="/logout">Logout</a> ... <script type="text/javascript"> // 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.getExtension('citizen_profile.session').then(function (session) { // Ensure the fallback login button uses the session instead of redirect to login page. document.getElementById('login-button').addEventListener('click', function (event) { // Start the login flow using the Citizen Profile Session extension. session.login(); // Prevent default behavior as the redirect is no longer required. event.preventDefault(); }); // Ensure the fallback logout button uses the session instead of redirect to // logout page. document.getElementById('logout-button').addEventListener('click', function (event) { // Start the logout flow using the Citizen Profile Session extension. session.logout(); // Prevent default behavior as the redirect is no longer required. event.preventDefault(); }); // This variable is purely to indicate which values are allowed (true / false). var websiteHasAuthenticatedSession = false; // Inform the session extension about the current session state of the website. Keep in mind // this operation can only be performed once on every page load. session.configure({ active: websiteHasAuthenticatedSession }); }); } }); </script> </body> </html> |
Fallback in SSO-callbackpagina
De featuredetectie is voldoende voor de Mijn Burgerprofiel-extensie om de aanmeld- en afmeldflows te starten.
...