Enerzijds biedt een transitie van een authenticatieplatform met zo’n lange geschiedenis als Entree Federatie naar een nieuw platform op basis van moderne technologische componenten beperkte mogelijkheden voor direct hergebruik van bestaande componenten. Anderzijds is Entree Federatie een zeer succesvol platform waarvoor continuïteit gegarandeerd dient te worden en waar bestaande interfaces en functionaliteiten niet abrupt stopgezet kunnen worden.

Belangrijk bij de overweging ten aanzien van een transitie naar een nieuw platform zijn de huidige stakeholders en gebruikers van Entree Federatie: meer dan 2.000 scholen hebben middels 150 Identity Providers toegang tot meer dan 225 diensten. Deze koppelingen moeten ondersteund blijven en de impact van wijzigingen dient zo veel mogelijk geminimaliseerd te worden.

Selectietraject

Om tot een keuze van een nieuw platform te komen, is een selectietraject uitgevoerd. Startpunt hiervoor was het huidige Entree Federatie-platform; door vast te stellen wat de technische (on)mogelijkheden zijn, is in combinatie met de functionele expertise van Stichting Kennisnet de toepasbaarheid van een nieuw platform tot in detail onderzocht en zijn functionele en technische tekortkomingen geïdentificeerd.

Er is onderzoek gedaan naar zowel de mogelijkheden voor vervanging van louter de  authenticatiecomponent Asimba als de mogelijkheden voor een algehele vervanging van het authenticatieplatform.

De keuze voor een nieuw platform voor het Entree Federatie-platform heeft verstrekkende gevolgen, waarbij diverse functionele en niet-functionele eisen dienen te worden afgewogen. Geen van de beschouwde bestaande oplossingen ondersteunt álle huidige aspecten van Entree Federatie én de daarnaast aanvullend gestelde specificaties.

Uiteindelijk is gekozen om het Entree Federatie-platform te baseren op het OpenConext-platform. Deze keuze heeft de volgende motivaties:

  • Bewezen oplossing in het hoger onderwijs
    OpenConext is een verzameling van open-source-applicaties die, net als Asimba, het mogelijk maakt om federatief in te loggen. Wat OpenConext onderscheidt van vergelijkbare platformen is dat het reeds een bewezen platform betreft: SURFconext. SURF, een instelling die in haar missie vergelijkbaar is met Stichting Kennisnet, houdt zich bezig met de samenwerking tussen verschillende Nederlandse hogeronderwijsinstanties op IT-vlak. SURF gebruikt haar versie van OpenConext – SURFconext – om verschillende cloudservices beschikbaar te maken voor de onderwijsinstituten die aan SURF verbonden zijn. SURFconext wordt ingezet bij universiteiten, waaronder Universiteit van Amsterdam, Vrije Universiteit Amsterdam en Universiteit van Utrecht. Qua functionaliteit, domein en schaal is dit vergelijkbaar met wat Stichting Kennisnet moet ondersteunen.
  • Vergelijkbare componenten
    Net als bij het Asimba-platform bestaat de kern van het OpenConext-platform uit een centrale logica-applicatie en een beheerapplicatie met gebruikersinterface. De centrale logica-applicatie heeft bij beide platformen als primaire taak het verwerken van authenticaties. De beheerapplicatie geeft bij beide platformen de mogelijkheid aan functioneel beheerders om inzage te krijgen in de factoren van het authenticatieproces, en tot op zekere hoogte de mogelijkheid om deze te beïnvloeden (zie onder het kopje OpenConext Manage voor meer informatie hierover).  De denkwijze die toepasbaar is op het Asimba-platform is zodoende ook relatief makkelijk om te zetten in een alternatief dat toepasbaar is op het OpenConext-platform.
  • Actieve (door)ontwikkeling
    In tegenstelling tot de Asimba-developer community, is de OpenConext-community zeer actief. SURF draagt regelmatig zorg voor releases van de verschillende applicaties van het OpenConext-platform, en ook buiten SURF is er een community die bijdraagt aan het platform. Zo wordt het platform ook gebruikt binnen de Nederlandse overheid en wordt het platform zelfs gebruikt in het Portugese onderwijs. Daarnaast is er een actieve Slack voor de OpenConext-community, waar men terechtkan met al zijn vragen met betrekking tot het platform, ondersteuning of ideeën voor innovaties.
  • Nieuwe features
    Een van de interessante mogelijkheden is het feit dat OpenConext het OpenID Connect (OIDC-) authenticatieprotocol ondersteunt. Dit relatief nieuwe protocol wordt voornamelijk gebruikt bij mobiele applicaties en ondersteuning van dit protocol was ook een van de wensen van partijen die zijn aangesloten bij Entree Federatie.

Kerncomponenten

Het OpenConext-landschap bestaat uit een aantal kerncomponenten, elk met zijn eigen rol. Elke applicatie is volledig open-source, wat afnemers van de applicaties de mogelijkheid geeft om deze aan te passen naar eigen behoefte. Om een beeld te schetsen van het OpenConext-platform, wordt hierna ingegaan op deze componenten en op de functies die zij vervullen.

OpenConext Engine

OpenConext Engine (ook wel: EngineBlock) is een PHP-applicatie die gebruikmaakt van het Symfony-framework, dat eveneens open-source is. Symfony is een van de grootste PHP-frameworks, dat al jaren wordt bijgehouden en door talloze developers wordt gebruikt. Hieruit blijken de stabiliteit, robuustheid en veiligheid van het framework. Zaken die van groot belang zijn gezien de honderdduizenden authenticaties die elke dag door de applicatie afgehandeld dienen te worden.

OpenConext Engine voorziet in het opzetten, bijhouden en afhandelen van authenticatiesessies. Een aangesloten dienst (Service Provider) stuurt zijn gebruikers die willen inloggen naar OpenConext Engine. Met welk account de gebruikers kunnen inloggen, wordt aangeboden door OpenConext Engine; de gebruiker kiest met welk account hij/zij wil inloggen en wordt naar desbetreffende voorziening (Identity Provider) gestuurd. Nadat  de gebruiker succesvol is ingelogd, wordt de gebruiker via OpenConext Engine teruggestuurd naar de oorspronkelijke dienst. Op dat moment houdt OpenConext Engine bij dat deze gebruiker is ingelogd en bij welke Identity Provider. Wanneer dezelfde gebruiker zou inloggen bij een andere dienst die ook aangesloten is, dan hoeft die niet nog een keer in te loggen (Single Sign-On).

Diensten kunnen verschillende gegevens nodig hebben van een gebruiker om goed te functioneren, denk bijvoorbeeld aan identificatienummers, persoonsgegevens of kenmerkende attributen (zie de informatie over ARP in blog 2). Binnen het platform gelden businessregels waarbij controle over de verstuurde gebruikersgegevens noodzakelijk is. OpenConext Engine voorziet in de uitvoering van deze controle, waarbij op basis van instellingen bepaalde gegevens wel of niet doorgestuurd worden naar de dienst. Verder zijn verscheidene functionaliteiten beschikbaar om de authenticatieprocedure fijnmazig te sturen op basis van inlogstatus of vooraanmelding.

OpenConext Manage

OpenConext Manage dient als beheerapplicatie voor beheerders van het OpenConext-ecosysteem. Waar de OpenConext Engine-applicatie vooral werkt achter de schermen, heeft de OpenConext Manage-applicatie een uitgesproken gebruikersinterface. Deze gebruikersinterface laat beheerders een aantal zaken regelen. Hoofdzakelijk wordt in OpenConext Manage het opvoeren en beheren van Identity Providers, Service Providers en Relying Parties (Service Providers die gebruikmaken van OIDC in plaats van SAML) geregeld. Voor Identity Providers en Service Providers is het mogelijk om de SAML-metadata en -toegangsregels te beheren en, zoals eerder genoemd, de controle van verstuurde gebruikersgegevens in te stellen. Deze wijzigingen worden opgeslagen in een database, maar worden ook als actieve dataset doorgestuurd naar de OpenConext Engine- en OpenConext OIDCng-applicaties (zie voor meer informatie over OpenConext OIDCng het kopje hierna). Deze gebruiken de data om te bepalen bij welke dienstaanbieder de gebruiker mag inloggen en hoe diegene dat dan moet doen, met andere woorden, bij welke Identity Provider de gebruiker moet inloggen.

OpenConext OIDCng

OpenConext OIDCng zorgt ervoor dat OIDC-authenticaties mogelijk zijn binnen het OpenConext- platform. OpenConext Engine is in staat om uitsluitend SAML-authenticaties uit te voeren en te controleren en geen OIDC-authenticaties. Hiervoor fungeert de OpenConext OIDCng-applicatie als een vertaalslag die OIDC-authenticaties kan omzetten in SAML-authenticaties en deze dan doorgeeft aan OpenConext Engine. OpenConext Engine voert dan de gebruikelijke controles uit, zoals  de controle of de gebruikte Identity Provider wel in mag loggen bij de gewenste Service Provider.

Next steps

OpenConext biedt een uitstekende basis voor het vervangen van het Asimba-platform. Er is sprake van een substantiële overlap aan functionaliteiten, en de functionaliteiten die OpenConext daarnaast nog aanbiedt zijn veelal welkome toevoegingen. Bovendien vallen de gebruikte technieken zoals Java, PHP en Spring Boot ook goed binnen het applicatielandschap van Stichting Kennisnet en binnen de competenties van het huidige ontwikkelaarsteam.

Contact