Gewoonlijk wordt een login vanuit de dienst (SP) geïnitieerd: De eindgebruiker probeert bij een SP in te loggen en deze begint het proces door een SAML AuthenticationRequest te versturen via het bekende WAYF-scherm van SURFconext (als er meer dan één IdP is aangesloten op de betreffende dienst). IdP-geïnitieerde login (IdP initiated, IdP-first, unsolicited of ongevraagde login) maakt het mogelijk om in te loggen op een SP zonder dat de SP een SAML AuthenticationRequest stuurt. De IdP stuurt zelf een SAML Assertion op naar de SP waardoor er geen WAYF-scherm verschijnt. Dit kan worden gebruikt voor bijvoorbeeld een instellingsportal of een bookmark. Voor een dergelijke login is een 'deeplink' noodzakelijk waarbij de IdP en de SP al van te voren zijn bepaald. Op deze pagina wordt uitgelegd hoe een dergelijke deeplink kan worden gemaakt.
Let Op!
Niet alle SP's ondersteunen deze, van hun kant, ongevraagde login.
Opbouw Deeplink
Voor bijvoorbeeld de IdP SURFnet BV en de SP "Filesender | SURF" maakt de volgende deeplink een IdP-geïnitieerde login mogelijk:
https://engine.surfconext.nl/authentication/idp/unsolicited-single-sign-on/ba573f07093978e3852ddef0d2465b84?sp-entity-id=https://filesender.surfshare.nl/simplesamlphp/module.php/saml/sp/metadata.php/default-sp
Deze link bestaat uit de basis:
https://engine.surfconext.nl/authentication/idp/unsolicited-single-sign-on/IdP-key?sp-entity-id=SP-connection-ID
Indien de SP hier iets mee kan, kan ook een "&RelayState=" parameter toegevoegd worden met een voor de SP relevante waarde.
IdP-key
Het vinden van de IdP-key is relatief eenvoudig:
- Ga naar https://engine.surfconext.nl/authentication/proxy/idps-metadata
- Zoek hier op de instelling van je keuze
Kijk vervolgens bij SingleSignOnService
Let Op!
Deze IdP-key verandert als de entity-ID van je IdP wijzigt, bijvoorbeeld na een migratie van de software. De oude link zal dan niet meer werken.
SP-connection-ID
De connection-ID van de SP is iets moeilijker te vinden.
- Installer de SAML tracer en start deze op (zie https://wiki.surfnetlabs.nl/display/surfconextdev/SAML+Tracer)
- Log vervolgens in bij SP.
- Zoek de eerste oranje SAML-indicatie en klik hierop
- Vervolgens verschijnt er naast 'Parameters' een SAML-button. Klik ook deze aan.
Kijk tenslotte bij de code na <saml:Issuer>