KNF:SAML-sp

Uit Kennisnet Developers Documentatie
Naar navigatie springen Naar zoeken springen

Entree Federatie-symbol.png Entree Federatie: SAML-sp

Nl.gif Nederlands En.gif English


Inleiding

Entree Federatie geeft gebruikers in het po, vo en mbo toegang tot een groot aantal educatieve diensten met slechts één login (ook wel bekend als Single Sign On of SSO). De federatie wordt gevormd door aanbieders van een educatieve dienst of content (Service Providers), beheerders van identiteiten (Identity Providers) en de applicatie van Kennisnet (Entree Federatie).

Een Identity Provider is de applicatie die voor de school de communicatie met Entree Federatie verzorgt.

De applicatie van Entree Federatie fungeert als een federatieve intermediair (of hub) in het authenticatieproces. Het is dus het centrale knooppunt waarlangs alle federatieve authenticatie berichten worden afgehandeld.

Entree Federatie overview.png


Twee stappen staan in dit proces centraal:

  • Authenticatie: het vaststellen van de identiteit van de gebruiker.
  • Autorisatie: op basis van de kenmerken van de gebruiker toegang verlenen tot een dienst of bepaalde content.

De authenticatie wordt door Entree Federatie afgehandeld, de autorisatie wordt door de Service Provider uitgevoerd.

Om een gebruiker te authenticeren worden XML berichten tussen de verschillende partijen uitgewisseld op basis van de open SAML 2.0 standaard (Security Assertion Markup Language). Een technische beschrijving van het authenticatie proces door middel van het SAML 2.0 protocol staat beschreven op Hoe werkt Entree Federatie?

Voorbereiding

Voor het aansluiten op Entree Federatie is het belangrijk om de volgende punten te overwegen:

  1. Welke attributen (persoonsgegevens) heb ik nodig om een gebruiker te kunnen autoriseren?
  2. Welke software library ga ik gebruiken voor het implementeren van de SAML functionaliteit?
  3. Wil ik gebruik maken van aanvullende functionaliteit als: Single Sign On query, scoping of forced authentication?
  4. Sta ik alleen federatieve accounts toe of ook Entree Accounts?

Uiteraard kan je tijdens de voorbereiding contact opnemen met Kennisnet voor meer informatie of als je vragen hebt.

Attributenbeleid

Tijdens het authenticatieproces ontvangt de applicatie van de Service Provider persoonsgegevens van de gebruiker in de vorm van attributen. Dit heeft als doel het identificeren en autoriseren van de persoon die gebruik wil maken van jouw applicatie. Binnen Entree Federatie wordt onderscheid gemaakt tussen twee typen attributen:

  • Standaard attributen: worden door alle Service Providers ontvangen
  • Aanvullende attributen: worden alleen ontvangen na expliciete toestemming van de onderwijsinstelling middels een Attribute Release Policy (ARP).

Een overzicht van de attributen is te vinden op de pagina Attributen overzicht voor Service Providers.

Let op: Een Service Provider die gebruik maakt van aanvullende attributen en dus een ARP van de onderwijsinstelling nodig heeft is zelf verantwoordelijk voor het informeren van de onderwijsinstelling en het verspreiden van het ARP formulier.

Per 25 mei 2018 is de Algemene verordening gegevensbescherming (AVG) van toepassing. Hiermee worden de privacyrechten van gebruikers versterkt en de verantwoordelijkheden van organisaties vergroot. Een belangrijk uitgangspunt binnen deze wetgeving is Privacy by default. Dit houdt in dat u technische en organisatorische maatregelen moet nemen om ervoor te zorgen dat u alléén persoonsgegevens verwerkt die noodzakelijk zijn voor het specifieke doel dat u wilt bereiken. Gebruik dus alleen attributen die functioneel essentieel zijn voor de autorisatie van de gebruiker en de werking van de applicatie.

Software library

Voor het implementeren van authenticatie door middel van SAML 2.0 zijn verschillende software libraries beschikbaar. De keuze voor één van deze libraries is vooral afhankelijk van de gebruikte ontwikkeltaal en persoonlijke voorkeur. Voor een aantal veel gebruikte libraries staan handleidingen op deze wiki. Voor het aansluiten op Entree Federatie worden geen specifieke libraries voorgeschreven door Kennisnet. Het is dus aan de dienstaanbier / ontwikkelaar om hier een keuze in te maken.

Aanvullende functionaliteit

In bepaalde use cases kan een dienstaanbieder er voor kiezen om één van de onderstaande functionaliteiten te implementeren. Deze kunnen het authenticatieproces verbeteren en/of vereenvoudigen.

SSO query

Deze functie biedt de mogelijkheid om te controleren of een gebruiker direct ingelogd kan worden zonder het inlogscherm te tonen. Kijk voor meer informatie op: SSO query

Scoping

In sommige gevallen is het al bekend welke Identity Provider de gebruiker zal gebruiken om zich via Entree Federatie te authenticeren. Dit kan zijn omdat de applicatie van de dienstaanbieder bijvoorbeeld voor een specifieke school is ingericht of omdat de gebruiker in de applicatie van de dienstaanbieder zijn of haar school heeft geselecteerd. In deze gevallen kan er gebruik gemaakt worden van scoping.

In het authenticatie verzoek dat de dienstaanbieder naar Entree Federatie verstuurd wordt de identifier van de Identity Provider meegegeven. Hierdoor kan de gebruiker gelijk worden doorgestuurd naar de Identity Provider en hoeft hij of zij geen school meer te selecteren op het WAYF-scherm (Where Are You From) van Entree Federatie.

Forced authentication

Federatieve accounts en Entree Accounts

Binnen Entree Federatie worden twee soorten accounts onderscheiden:

  • Federatieve accounts: Dit zijn accounts die de gebruiker van zijn of haar school heeft gekregen. Ze worden daarom ook wel schoolaccounts genoemd. De persoonsgegevens worden door de school beheerd en tijdens het authenticatie proces vraagt Entree Federatie deze gegevens op bij de Identity Provider van de school.
  • Entree accounts: Omdat er ook gebruikers zijn die geen schoolaccount hebben, heeft Kennisnet een eigen Identity Provider, Entree Account. Hier kan iedereen met een geldig e-mailadres een account aanmaken. Deze accounts bevatten minder persoonsgegevens en ze zijn ook niet geverifieerd. Daarom zijn er dienstaanbieders die ervoor kiezen om authenticatie middels een Entree Account niet toe te staan.

Implementatie

Nadat de voorbereiding is afgerond kan worden begonnen aan de implementatie van de koppeling met Entree Federatie. Dit zal ten eerste bestaan uit het installeren en configureren van de SAML 2.0 software library voor het de communicatie met de applicatie van Entree Federatie. Ten tweede zal er een integratie moeten plaatsvinden van de SAML 2.0 library met de eigen applicatie. Dit laatste valt buiten de scope van de ondersteuning van Kennisnet en wordt dus ook niet beschreven in de documentatie op deze wiki.

Entree Federatie beschikt over een staging en een productie omgeving, de software op deze omgevingen is identiek. Tijdens het implementeren van de koppeling kan gebruik gemaakt worden van de staging omgeving. De productie omgeving is alleen bedoeld voor het koppelen met productie applicaties en dus niet voor test doeleinden.

Aandachtspunten inrichten server

Voor het inrichten van de server zijn een aantal algemene aandachtspunten waar rekening mee gehouden moet worden:

  • Voor de communicatie met de staging omgeving van Entree Federatie mag via een http verbinding verlopen, zodat ook lokale ontwikkel- en testomgevingen gebruikt kunnen worden. Voor een koppeling met de productie omgeving is https een vereiste.
  • De server mag maximaal één minuut achterlopen of vijf minuten voorlopen. Maak daarom gebruik van Network Time Protocol (NTP) om de tijd op de server te synchroniseren.
  • Alle verstuurde XML berichten moeten worden gesigned, momenteel wordt hiervoor alleen SHA-1 versleuteling ondersteund. Voor het signen van berichten kan een self-signed certificaat gebruikt worden.

Uitwisseling metadata

Voor het configureren van de SAML 2.0 software heb je de metadata van Entree Federatie nodig, deze is op de volgende URL's te vinden:

Tijdens de configuratie van de software library wordt er ook een metadata bestand gegenereerd. Zorg ervoor dat dit bestand op een publieke URL beschikbaar is. Gedurende de cofiguratie moet ook een zogenaamd entityID worden opgegeven. Dit is de identifier van de Service Provider en deze moet uniek zijn binnen Entree Federatie. Om te zorgen dat het entityID uniek is kan daarom het beste de URL van de webapplicatie gebruikt worden.

Als je de installatie en configuratie hebt afgerond geef je deze URL door aan Kennisnet. Vervolgens zal Kennisnet de koppeling in de Entree Federatie applicatie configureren. Wanneer deze configuratie is afgerond kan de koppeling getest worden.

Testen van de koppeling

Voor het testen kan gebruik gemaakt worden van de Referentie Identity Provider van Entree Federatie. Met behulp van deze applicatie wordt het inloggen van een gebruiker via bijvoorbeeld een Elektronische Leeromgeving gesimuleerd. Het testscenario staat beschreven op: Service provider koppeling testen. Mocht je tijdens het testen tegen foutmeldingen aanlopen neem dan contact op met Kennisnet.

Integratie

Nu de koppeling technisch werkt is het zaak om deze functionaliteit te integreren in de eigen applicatie. Aangezien iedere applicatie uniek is kan Kennisnet in deze fase geen ondersteuning bieden.
Voor het plaatsen van een inlog knop op je website hebben we beeldmateriaal beschikbaar.

Overeenkomst

Nu de koppeling op staging geconfigureerd, getest en geïntegreerd is, wordt er een overeenkomst afgesloten tussen de dienstaanbieder en Entree Federatie. Kennisnet zal hiervoor contact opnemen met de administratief contactpersoon van de dienstaanbieder. Nadat de Kennisnet de overeenkomst getekend retour heeft ontvangen kan de koppeling met de productie omgeving van Entree Federatie aangemaakt worden.