KNF:SSOnotification: verschil tussen versies

Uit Kennisnet Developers Documentatie
Naar navigatie springen Naar zoeken springen
 
(52 tussenliggende versies door 3 gebruikers niet weergegeven)
Regel 1: Regel 1:
 
{{Talen}}
 
{{Talen}}
  +
 
==Wat is een SSO notificatie?==
 
==Wat is een SSO notificatie?==
Met een SSO notificatie (ook wel vooraanmelding genoemd) kan een Identity Provider er voor zorgen dat zijn gebruikers het WAYF (Where Are You From) scherm van Entree Federatie automatisch overslaan. Dit is het scherm waar de gebruiker zijn school selecteert.<br/>
+
Met een SSO notificatie (ook wel vooraanmelding genoemd) kan een Identity Provider ervoor zorgen dat zijn gebruikers het WAYF ('''W'''here '''A'''re '''Y'''ou '''F'''rom) scherm van Entree Federatie automatisch overslaan. Dit is het scherm waar de gebruiker zijn school selecteert.<br/>
[[Bestand:WAYF-scherm.png|border|600px|Where Are You From (WAYF) scherm]]
+
[[Bestand:Wayf01.PNG|border|400px|Where Are You From (WAYF) scherm]]
 
<br/><br/>
 
<br/><br/>
  +
Dankzij de SSO notificatie hoeft de gebruiker minder handelingen uit te voeren tijdens het inlogproces en wordt het gebruiksgemak vergroot.
Het gebruiksgemak tijdens het inlogproces wordt vergroot als het WAYF scherm wordt overgeslagen door het gebruik van een SSO notificatie.
 
   
 
==Hoe werkt een SSO notificatie?==
 
==Hoe werkt een SSO notificatie?==
Nadat een gebruiker is ingelogd bij zijn Identity Provider (bijvoorbeeld een ELO of via Windows authenticatie), verstuurt de Identity Provider een SSO notificatie verzoek naar Entree Federatie. Deze plaats vervolgens een cookie in de browser van de gebruiker met daarin de versleutelde authenticatie URL van de Identity Provider.
+
Nadat een gebruiker is ingelogd bij zijn Identity Provider (bijvoorbeeld een ELO of via Windows authenticatie), verstuurt de Identity Provider een SSO notificatie verzoek naar Entree Federatie. Deze plaats vervolgens een cookie in de browser van de gebruiker met daarin de versleutelde authenticatie URL van de Identity Provider. Op het moment dat een gebruiker via Entree Federatie wil inloggen bij een aangesloten dienstleverancier zal Entree Federatie het SSO notificatie cookie uitlezen en de gebruiker direct doorsturen naar de authenticatie URL van zijn Identity Provider, waarmee het WAYF scherm dus is overgeslagen.
 
Op het moment dat een gebruiker via Entree Federatie wil inloggen bij een aangesloten dienstleverancier zal Entree Federatie het SSO notificatie cookie uitlezen en de gebruiker direct doorsturen naar de authenticatie URL van zijn Identity Provider, waarmee het WAYF scherm dus is overgeslagen.
 
 
== Zelf SSO notificatie uitproberen ==
 
Met behulp van onze referentiediensten is het mogelijk om zelf het verschil in het inlogproces te ervaren met en zonder SSO notificatie.
 
===Inloggen zonder SSO notificatie===
 
#'''De gebruiker logt in op zijn ELO'''
 
#*Ga naar de [https://referentie.entree.kennisnet.nl/ReferentieELO/app Referentie ELO] van Entree Federatie
 
#'''De gebruiker klikt op een link naar lesmateriaal of content van een aangesloten dienstleverancier'''
 
#*Klik 'Naar dienst'
 
#'''Het WAYF scherm wordt nu getoond, omdat bij Entree Federatie niet bekend is van welke Identity Provider de gebruiker komt '''
 
#*Kies 'Log in met je schoolaccount'
 
#*Zoek en kies 'Referentie Klant Organisatie'
 
#*Klik op 'Verder'
 
#'''De gebruikersgegevens (attributen) worden bij de Identity Provider opgevraagd door Entree Federatie'''
 
#*Normaal gesproken zal deze stap onder water plaatsvinden, bij de ReferentieELO is het echter mogelijk om de attributen nog aan te passen voor test doeleinden.
 
#*Klik op 'Naar dienst'
 
#'''De attributen worden naar de dienstleverancier doorgestuurd. De gebruiker is ingelogd bij de Referentie Service Provider en de attributen van de gebruiker worden getoond.'''
 
   
  +
Hoe SSO notificatie werkt binnen het authenticatie proces is te zien in [https://prezi.com/eq2xjhid1fxf/entree-federatie-authenticatie/ deze presentatie].
=== Voorbeeld met SSOnotificatie: ===
 
#'''De gebruiker logt in op zijn ELO'''
 
#*Ga naar de [https://referentie.entree.kennisnet.nl/ReferentieELO/app ReferentieELO] van Entree Federatie
 
#*Klik op "SSO Notificatie", er wordt nu een SSO notificatie cookie geplaatst met het versleutelde adres van de ReferentieELO
 
#'''De gebruiker klikt op een link naar lesmateriaal of content van een aangesloten dienstleverancier'''
 
#*Klik 'Naar dienst'<br/> <span style="color:#ff0000">Het WAYF (Where Are You From) scherm wordt '''niet''' getoond, omdat de Identity Provider kan worden uitgelezen uit het SSO notificatie cookie.</span>
 
#'''De gebruikersgegevens (attributen) worden bij de Identity Provider opgevraagd door Entree Federatie'''
 
#*Normaal gesproken zal deze stap onder water plaatsvinden, bij de ReferentieELO is het echter mogelijk om de attributen nog aan te passen voor test doeleinden.
 
#*Klik op 'Naar dienst'
 
#'''De attributen worden naar de dienstleverancier doorgestuurd. De gebruiker is ingelogd bij de Referentie Service Provider en de attributen van de gebruiker worden getoond.'''
 
   
== Implementatie door middel van een Iframe: ==
+
== Implementatie met redirect ==
  +
===Opbouw redirect URL===
Hiervoor kan het onderstaande script of webpart voor SharePoint 2007 gebruikt worden.
 
  +
De URL waarnaartoe de redirect wordt gedaan bestaat uit vier onderdelen:
   
 
* Voor '''productie''': <nowiki>https://ssonot.entree.kennisnet.nl/?id=<identifier van de IdP>&url=<url-encoded ELO URL>&redirectUri=<url-encoded redirect URL></nowiki>
* Script (voor in een iframe): http://www.kennisnet.nl/fileadmin/contentelementen/kennisnet/Kennisnet_federatie/Plug-ins/EntreeSSONotificatie.txt
 
  +
* Voor '''staging''': <nowiki>https://ssonot.entree-s.kennisnet.nl/?id=<identifier van de IdP>&url=<url-encoded ELO URL>&redirectUri=<url-encoded redirect URL></nowiki>
* Webpart: http://www.kennisnet.nl/fileadmin/contentelementen/kennisnet/Kennisnet_federatie/Plug-ins/Entree.SSO.1.0.3.wsp
 
  +
Parameters:
  +
* '''id:''' De unieke identifier waarmee de Identity Provider bekend is binnen Entree Federatie. Dit is het entityId uit de metadata van de Identity Provider. De live data van de WAYF is via een publiek JSON bestand beschikbaar via: https://engine.entree.kennisnet.nl/sso/wayfsearch
  +
* '''url:''' De URL (url-encoded) van de omgeving waar de redirect vandaan komt. Dit wordt in de Entree Federatie applicatie gebruikt voor verificatie.
  +
* '''redirectUri:''' De redirectURI (url-encoded), dit is de URL waar de gebruiker naar teruggestuurd wordt na het plaatsen van het SSO notificatie cookie. Dit zal in veel gevallen hetzelfde zijn als de URL waar de redirect vandaan komt, maar kan indien gewenst dus ook afwijken.
   
  +
De redirect URL krijgt daarmee de volgende constructie:<br>
De webpart is voor SharePoint 2007, voor andere versies kan het script gebruikt worden en geplaatst in een hidden webpart.
 
  +
''<nowiki>https://ssonot.entree.kennisnet.nl/?id=<identifier van de IdP>&url=<url-encoded ELO URL>&redirectUri=<url-encoded redirect URL></nowiki>''
   
  +
===Whitelist===
In dit script moet de Elo Id en de Elo URL aangepast worden.
 
  +
'''LET OP:''' Voordat de SSO notificatie wordt geïmplementeerd moet de URL van de ELO of schoolportaal waarvandaan de redirect wordt uitgevoerd (zie [[KNF:SSO_notificatie_middels_een_redirect#Foutmeldingen | Foutmeldingen]]) toegevoegd worden aan de whitelist van Entree Federatie. Neem hiervoor contact op met [mailto:support@kennisnet.nl Kennisnet].
* Elo Id (Entity Id) : de unieke identifier van de koppeling (kan opgevraagd worden bij Kennisnet).
 
* Elo URL: https://*.domeinnaam.nl (dit moet de locatie/domein zijn waar het script staat).
 
   
 
===Voorbeeld===
  +
In onderstaande voorbeeld is ''<nowiki>http://authenticate.example.org</nowiki>'' de identifier van de IdP, ''<nowiki>http://www.example.org</nowiki>'' de URL waarvandaan de redirect wordt uitgevoerd en ''<nowiki>http://www.kennisnet.nl</nowiki>'' de URL waar de gebruiker naar wordt toegestuurd na het plaatsen van de SSO notificatie cookie.<br>
 
''<nowiki>https://ssonot.entree.kennisnet.nl/?id=http://authenticate.example.org&url=http%3A%2F%2Fwww.example.org&redirectUri=http%3A%2F%2Fwww.kennisnet.nl</nowiki>''
   
  +
===Foutmeldingen===
  +
Als de ingestelde identifier van de IdP niet bekend is binnen Entree Federatie zal de redirect call resulteren in een 400 HTTP status code (Bad request).<br>
  +
Wanneer de URL waarvandaan de call gedaan wordt niet aan de whitelist van Entree Federatie is toegevoegd zal de redirect call ook een 401 HTTP status code (Unauthorized) opleveren.<br>
  +
Wanneer de redirectUri niet aan de whitelist van Entree Federatie is toegevoegd zal de redirect call een 401 HTTP status code (Unauthorized) opleveren.<br>
  +
Neem in deze gevallen contact op met [mailto:support@kennisnet.nl Kennisnet].
   
== Implementatie door middel van een redirect: ==
+
===Waarom alleen nog via redirect?===
  +
Wanneer vanuit een Identity Provider via een AJAX call of een iframe Entree Federatie een SSO notificatie cookie laat plaatsen dan is dit een third party cookie. Third party cookies (cookies van derden) worden geplaatst door andere domeinen (in dit geval Entree Federatie) dan het domein van de website die je op dat moment bezoekt (de Identity Provider).
Hiervoor hoeft men slechts 1 url aan te roepen.
 
  +
Sommige organisaties gebruiken third party cookies voor het volgen van gebruikers wanneer deze verschillende websites bezoekt. Aangezien dit type third party cookies (ook wel tracking cookies genoemd) een inbreuk kunnen maken op de privacy van gebruikers wordt het gebruik hiervan steeds meer ontmoedigd door browsers en vaak ook geblokkeerd.
<br>
 
<nowiki>https://aselect.entree.kennisnet.nl/openaselect/profiles/entree?id=<identifier van de koppeling>&url=<url encoded url>&redirectUri=<url encoded url></nowiki>
 
   
  +
Hierdoor kan het voorkomen dat ook het SSO notificatie cookie niet geplaatst wordt. De gebruiker kan in zo'n geval nog steeds inloggen via Entree Federatie, maar zal wel zelf zijn of haar school moeten selecteren op het WAYF scherm van Entree Federatie. Aangezien browsers hebben aangegeven om op termijn third party cookies helemaal te blokkeren kan het plaatsen van een SSO notificatie het beste gebeuren door middel van een redirect.
vb:
 
https://aselect.entree.kennisnet.nl/openaselect/profiles/entree?id=http://authenticate.example.org&url=http%3A%2F%2Fwww.example.org&redirectUri=http%3A%2F%2Fwww.example.org
 
   
  +
==Realm meesturen in SSO noticatie==
  +
De realm kan in een SSO notifcatie cookie call worden opgenomen als de optionele parameter ‘realm’:
  +
https://ssonot.entree.kennisnet.nl/?id=https%3A%2F%2Fsaml.magister.net&url=https%3A%2F%2Fsaml.magister.net&realm=magis.dalton00HI&redirectUri=https%3A%2F%2Fwww.kennisnet.nl
   
  +
Let op: de parameters ‘id’, ‘url’ en ‘redirectUri’ zijn nog steeds verplicht (technisch gesproken is de ‘redirectUri’ niet verplicht, maar tegenwoordig wel noodzakelijk omdat AJAX calls niet meer werken).
'''Daarnaast moet de Elo URL worden geregistreerd bij Kennisnet, zodat deze kan worden toegevoegd aan de white list, geef deze daarom door aan Kennisnet!!'''
 
   
  +
Tijdens de authenticatie wordt er wel gevalideerd op de realm in het SSO notificatie cookie:
  +
# Wanneer realm scoping niet is ingesteld voor de IdP, dan wordt de gebruiker naar de IdP doorgestuurd, maar zonder een realm in het scoping element.
  +
# Wanneer de combinatie van het entityID van de IdP en de realm bestaat, dan wordt de de gebruiker naar de IdP doorgestuurd en de realm opgenomen in het scoping element.
  +
# Wanneer de realm onbekend is in Entree Federatie, dan wordt de gebruiker doorgestuurd naar de IdP, maar zonder een realm in het scoping element.
  +
# Wanneer de realm wel bekend is in Entree Federatie, maar niet voor de IdP in het SSO notificatie cookie, dan wordt de gebruiker doorgestuurd naar de IdP, maar zonder een realm in het scoping element.
   
[[Categorie:Kennisnet Federatie]]
 
 
[[Categorie:Entree Federatie]]
 
[[Categorie:Entree Federatie]]

Huidige versie van 31 okt 2023 om 15:33

Nl.gif Nederlands En.gif English

Wat is een SSO notificatie?

Met een SSO notificatie (ook wel vooraanmelding genoemd) kan een Identity Provider ervoor zorgen dat zijn gebruikers het WAYF (Where Are You From) scherm van Entree Federatie automatisch overslaan. Dit is het scherm waar de gebruiker zijn school selecteert.
Where Are You From (WAYF) scherm

Dankzij de SSO notificatie hoeft de gebruiker minder handelingen uit te voeren tijdens het inlogproces en wordt het gebruiksgemak vergroot.

Hoe werkt een SSO notificatie?

Nadat een gebruiker is ingelogd bij zijn Identity Provider (bijvoorbeeld een ELO of via Windows authenticatie), verstuurt de Identity Provider een SSO notificatie verzoek naar Entree Federatie. Deze plaats vervolgens een cookie in de browser van de gebruiker met daarin de versleutelde authenticatie URL van de Identity Provider. Op het moment dat een gebruiker via Entree Federatie wil inloggen bij een aangesloten dienstleverancier zal Entree Federatie het SSO notificatie cookie uitlezen en de gebruiker direct doorsturen naar de authenticatie URL van zijn Identity Provider, waarmee het WAYF scherm dus is overgeslagen.

Hoe SSO notificatie werkt binnen het authenticatie proces is te zien in deze presentatie.

Implementatie met redirect

Opbouw redirect URL

De URL waarnaartoe de redirect wordt gedaan bestaat uit vier onderdelen:

  • Voor productie: https://ssonot.entree.kennisnet.nl/?id=<identifier van de IdP>&url=<url-encoded ELO URL>&redirectUri=<url-encoded redirect URL>
  • Voor staging: https://ssonot.entree-s.kennisnet.nl/?id=<identifier van de IdP>&url=<url-encoded ELO URL>&redirectUri=<url-encoded redirect URL>

Parameters:

  • id: De unieke identifier waarmee de Identity Provider bekend is binnen Entree Federatie. Dit is het entityId uit de metadata van de Identity Provider. De live data van de WAYF is via een publiek JSON bestand beschikbaar via: https://engine.entree.kennisnet.nl/sso/wayfsearch
  • url: De URL (url-encoded) van de omgeving waar de redirect vandaan komt. Dit wordt in de Entree Federatie applicatie gebruikt voor verificatie.
  • redirectUri: De redirectURI (url-encoded), dit is de URL waar de gebruiker naar teruggestuurd wordt na het plaatsen van het SSO notificatie cookie. Dit zal in veel gevallen hetzelfde zijn als de URL waar de redirect vandaan komt, maar kan indien gewenst dus ook afwijken.

De redirect URL krijgt daarmee de volgende constructie:
https://ssonot.entree.kennisnet.nl/?id=<identifier van de IdP>&url=<url-encoded ELO URL>&redirectUri=<url-encoded redirect URL>

Whitelist

LET OP: Voordat de SSO notificatie wordt geïmplementeerd moet de URL van de ELO of schoolportaal waarvandaan de redirect wordt uitgevoerd (zie Foutmeldingen) toegevoegd worden aan de whitelist van Entree Federatie. Neem hiervoor contact op met Kennisnet.

Voorbeeld

In onderstaande voorbeeld is http://authenticate.example.org de identifier van de IdP, http://www.example.org de URL waarvandaan de redirect wordt uitgevoerd en http://www.kennisnet.nl de URL waar de gebruiker naar wordt toegestuurd na het plaatsen van de SSO notificatie cookie.
https://ssonot.entree.kennisnet.nl/?id=http://authenticate.example.org&url=http%3A%2F%2Fwww.example.org&redirectUri=http%3A%2F%2Fwww.kennisnet.nl

Foutmeldingen

Als de ingestelde identifier van de IdP niet bekend is binnen Entree Federatie zal de redirect call resulteren in een 400 HTTP status code (Bad request).
Wanneer de URL waarvandaan de call gedaan wordt niet aan de whitelist van Entree Federatie is toegevoegd zal de redirect call ook een 401 HTTP status code (Unauthorized) opleveren.
Wanneer de redirectUri niet aan de whitelist van Entree Federatie is toegevoegd zal de redirect call een 401 HTTP status code (Unauthorized) opleveren.
Neem in deze gevallen contact op met Kennisnet.

Waarom alleen nog via redirect?

Wanneer vanuit een Identity Provider via een AJAX call of een iframe Entree Federatie een SSO notificatie cookie laat plaatsen dan is dit een third party cookie. Third party cookies (cookies van derden) worden geplaatst door andere domeinen (in dit geval Entree Federatie) dan het domein van de website die je op dat moment bezoekt (de Identity Provider). Sommige organisaties gebruiken third party cookies voor het volgen van gebruikers wanneer deze verschillende websites bezoekt. Aangezien dit type third party cookies (ook wel tracking cookies genoemd) een inbreuk kunnen maken op de privacy van gebruikers wordt het gebruik hiervan steeds meer ontmoedigd door browsers en vaak ook geblokkeerd.

Hierdoor kan het voorkomen dat ook het SSO notificatie cookie niet geplaatst wordt. De gebruiker kan in zo'n geval nog steeds inloggen via Entree Federatie, maar zal wel zelf zijn of haar school moeten selecteren op het WAYF scherm van Entree Federatie. Aangezien browsers hebben aangegeven om op termijn third party cookies helemaal te blokkeren kan het plaatsen van een SSO notificatie het beste gebeuren door middel van een redirect.

Realm meesturen in SSO noticatie

De realm kan in een SSO notifcatie cookie call worden opgenomen als de optionele parameter ‘realm’: https://ssonot.entree.kennisnet.nl/?id=https%3A%2F%2Fsaml.magister.net&url=https%3A%2F%2Fsaml.magister.net&realm=magis.dalton00HI&redirectUri=https%3A%2F%2Fwww.kennisnet.nl

Let op: de parameters ‘id’, ‘url’ en ‘redirectUri’ zijn nog steeds verplicht (technisch gesproken is de ‘redirectUri’ niet verplicht, maar tegenwoordig wel noodzakelijk omdat AJAX calls niet meer werken).

Tijdens de authenticatie wordt er wel gevalideerd op de realm in het SSO notificatie cookie:

  1. Wanneer realm scoping niet is ingesteld voor de IdP, dan wordt de gebruiker naar de IdP doorgestuurd, maar zonder een realm in het scoping element.
  2. Wanneer de combinatie van het entityID van de IdP en de realm bestaat, dan wordt de de gebruiker naar de IdP doorgestuurd en de realm opgenomen in het scoping element.
  3. Wanneer de realm onbekend is in Entree Federatie, dan wordt de gebruiker doorgestuurd naar de IdP, maar zonder een realm in het scoping element.
  4. Wanneer de realm wel bekend is in Entree Federatie, maar niet voor de IdP in het SSO notificatie cookie, dan wordt de gebruiker doorgestuurd naar de IdP, maar zonder een realm in het scoping element.