KNF:SAML-sp
Nederlands | 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.
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 uitgebreide beschrijving van dit proces staat beschreven op [[KNF:Hoe_werkt_Entree_Federatie%3F Hoe werkt Entree Federatie?].
Beschrijving Entree Federatie
Entree Federatie fungeert als hub tussen alle aangesloten Service Providers (SP) en alle Identity Providers (IdP). Hieronder staat schematisch weergegeven wat de rol van Entree Federatie is.
- Een gebruiker gaat naar de dienst (SP) om in te loggen
- De dienst stuurt de gebruiker naar Entree Federatie om te authentiseren.
- Entree Federatie bepaalt de organisatie (IdP) waar de gebruiker bij hoort via het WAYF inlogscherm (Where are you from), of via het uitlezen van het SSO cookie.
- De IdP wordt gekozen.
- Entree Federatie stuurt de gebruiker naar de IdP
- De IdP authentiseert de gebruiker en stuurt de gebruiker terug naar Entree Federatie met een set attributen (persoonsgegevens).
- Entree Federatie controleert het resultaat, en bepaalt welke attributen mogen worden doorgestuurd naar de SP o.b.v. de ARP (Attribute Release Policy) en stuurt dit door naar de SP.
- De SP verwerkt het resultaat, de gebruiker is nu ingelogd.
Staging en productie omgeving
De productie omgeving is alleen bedoeld voor productie omgevingen en is niet bedoeld voor test doeleinde.
De software van de staging omgeving is identiek aan de productie omgeving en kan gebruikt worden voor ontwikkelpartijen om tegen te testen.
Implementatie voorbereiding
- Bepaal hoe je wilt koppelen met Entree Federatie, op de wiki staan meerdere standaard pakketten die gebruikt kunnen worden.
- Na het installeren en configureren van de software, stuur je de metadata url van de omgeving naar Kennisnet.
- Kennisnet maakt in eerste instantie een koppeling met de staging omgeving.
- Maak een test project waarmee je een authenticatie verzoek naar Entree Federatie kunt sturen.
- Implementeer authenticatie in de software van de dienst.
- Test of het authentiseren werkt, hiervoor kun je gebruik maken van de Referentie diensten
SAML support
Een korte uitleg over het SAML protocol kun je hier vinden: https://blog.surf.nl/en/saml-for-dummies/
Op deze website kun je verschillende SAML tools en ondersteuning vinden: https://www.samltool.com/online_tools.php
Een overzicht van standaard pakketten om te koppelen kun je hier vinden: http://developers.wiki.kennisnet.nl/index.php?title=KNF:Hoofdpagina
Een volledige uitleg van het SAML protocol kun je hier vinden: http://docs.oasis-open.org/security/saml/v2.0/
Koppelen met Entree Federatie
Metadata URL's
De metadata van Entree Federatie bevat zowel SP als IdP metadata.
of https://aselect.entree.kennisnet.nl/openaselect/profiles/saml2/
of https://aselect-s.entree.kennisnet.nl/openaselect/profiles/saml2/
Protocol & bindings
Entree Federatie ondersteund de volgende bindings:
- HTTP-Redirect, HTTP-Artifact and HTTP-POST for all incoming messages,
- HTTP-Redirect and HTTP-POST for outgoing messages.
Entree Federatie stuurt alleen <AuthnRequest>’s naar IdP's. Er worden geen andere SAML requests verstuurd. Daarom bevat het antwoord een <AuthnStatement> en een <AttributeStatement>, als de authenticatie succesvol is.
Name ID Format
De Name ID (Name ID in de <AuthnStatement>) die Entree Federatie heeft de volgende eigenschappen:
- De waarde is als volgt opgebouwd (username)@(realm). De Name ID heeft hetzelfde formaat als een e-mailadres, maar is het niet.
- De waarde voor de realm is uniek binnen Entree Federatie en bevat bij voorkeur een schooldomein.
- Het SAML2 Name ID format is urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
De Name ID die Entree Federatie ontvangt van de IdP is niet gelijk aan de Name ID die wordt doorgestuurd naar de SP's:
- Entree Federatie genereert een uid door het versleutelen van de (username) en het (empoyeenumber) gevolgd door de @realm.
- Door het versleutelen is de originele Name ID die door de IdP is aangeleverd niet meer zichtbaar voor andere partijen, zodat de privacy van de gebruikers is gewaarborgd. De realm blijft wel zichtbaar.
- De uid is en blijft uniek binnen de hele Federatie voor alle partijen. De uid verwijst altijd naar dezelfde gebruiker ongeacht datum/tijd waarop het ID is gebruikt.
Gegevens van de gebruiker
Standaard stuurt Entree Federatie alleen de standaard set attributen naar de dienst. Deze attributen bevatten geen privacy gevoelige informatie over de gebruiker. Een overzicht van de attributen kun je hier vinden: http://developers.wiki.kennisnet.nl/index.php?title=KNF:Attributen_overzicht_voor_Service_Providers
Indien je als dienst meer informatie nodig hebt van een gebruiker, bijvoorbeeld voor autorisatie, dan kan de school hier schriftelijk toestemming voor geven met een ARP (Attribute Release Policy) formulier. Hiervoor hebben we templates die je kan gebruiken als dienst.
Federatieve accounts & Entree Accounts
Entree Federatie heeft 2 soorten accounts, federatieve accounts van alle aangesloten IdP's ook wel schoolaccounts genoemd. Daarnaast heeft Kennisnet een eigen IdP Entree Account, waar gebruikers zelf een individueel account kunnen aanmaken.
Het belangrijkste verschil tussen deze accounts is dat Federatieve accounts daadwerkelijk van een school komen en ook alle attributen bevatten en Entree Accounts niet gekoppeld zijn aan een school en de waardes voor de attributen eduPersonAffiliation, nlEduPersonHomeOrganization en nlEduPersonHomeOrganizationId en standaard waarde bevatten.
Testen
Voor het testen van de dienst kun je gebruik maken van de Referentie diensten van Entree Federatie. http://developers.wiki.kennisnet.nl/index.php?title=KNF:Referentiediensten