Op deze pagina lees je hoe je simpleSAMLphp moet configureren als Identity Provider voor SURFconext. Het volgende komt hier aan bod:
Hoe je simpleSAMLphp moet installeren, kun je lezen in de handleiding. Volg deze instructies op voordat je hier verder gaat.
Als je werkt met Debian (of Ubuntu) kun je simpleSAMLphp downloaden via de standaard pakketmanager (apt). Als je werkt met Fedora, CentOS of Red Hat Enterprise Linux, moet je het experimentele pakket gebruiken.
Configuratie
In de handleiding op de website van simpleSAMLphp is bijna compleet beschreven hoe je als Identity Provider het programma moet configureren. Op deze pagina vind je een aantal fragmenten uit de handleiding om je te helpen bij de configuratie, zodat je sneller kunt starten met SURFconext. We adviseren echter wel om de stappen in de handleiding van simpleSAMLphp te volgen, en onderstaande instructies te gebruiken als ondersteuning bij een specifieke stap in het proces.
Authenticatiebron
In config/authsources.php
kun je aangeven welke authenticatiemethode je huidige Identity Provider-systeem gebruikt. Je kunt verschillende backends kiezen. De meeste organisaties gebruiken waarschijnlijk LDAP.
Vergeet niet de auth parameter in metadata/saml20-idp-hosted
.php in te stellen volgens de authenticatiebron die je hebt geconfigureerd in config/authsources.php:
'auth' => 'example-userpass'
,
of
'auth' => 'ldap'
Via simpleSAMLphp's pagina "Test configured authentication sources" kun je lokaal verifiëren of de authenticatie werkt.
Metadata extensies
Hieronder zie je een voorbeeld van een stukje code dat je toe kunt voegen aan metadata/saml20-idp-hosted.php
, om meer detailinformatie over jouw organisatie toe te voegen.
'UIInfo' => [ 'DisplayName' => [ 'en' => 'University of Monnickendam', 'nl' => 'Universiteit van Monnickendam', ], 'Description' => [ 'en' => 'An IdP operated by University of Monnickendam', ], 'Keywords' => [ 'en' => ['university','monnickendam','uvm'], 'nl' => ['universiteit','monnickendam','uvm'], ), 'Logo' => [ [ 'url' => 'https://www.uvm.nl/universiteitvanmonnickendam.png', 'height' => 51, 'width' => 107, ], ], ],
Zorg ervoor dat je het logo van jouw organisatie host op een webserver die met SSL beveiligd is.
Inschakelen SHA-256
In de eerder genoemde metadata/saml20-idp-hosted.php moet ook aangegeven worden dat de SAML responses ondertekend dienen te worden dmv SHA-256 hashes door de volgende configuratieoptie op te nemen:
'signature.algorithm' => 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha256',
SURFconext als Service Provider
Voeg SURFconext als Service Provider toe aan simpleSAMLphp in metadata/saml20-sp-remote.php.
In het voorbeeld hieronder is de link 'https://engine.surfconext.nl/authentication/sp/metadata' de link de verwijst naar het entityID van SURFconext als Service Provider. Dit is correct. De metadata is te downloaden vanaf https://metadata.surfconext.nl/sp-metadata.xml (productie) of https://metadata.test.surfconext.nl/sp-metadata.xml (test)
$metadata['https://engine.surfconext.nl/authentication/sp/metadata'] = [ 'AssertionConsumerService' => 'https://engine.surfconext.nl/authentication/sp/consume-assertion', 'authproc' => [ /* add schacHomeOrganization attribute */ 10 => [ 'class' => 'core:AttributeAdd', 'schacHomeOrganization' => 'university.example.org', ], 80 => [ 'class' => 'core:ScopeAttribute', 'scopeAttribute' => 'schacHomeOrganization', 'sourceAttribute' => 'eduPersonAffiliation', 'targetAttribute' => 'eduPersonScopedAffiliation', ], /* add the 'urn' prefix to all supported attributes (if available from authentication source) */ 90 => [ 'class' => 'core:AttributeMap', 'name2urn' ], ], ];
Let op dat je in ieder geval al bovenstaande attributen vrijgeeft, conform de best practice Vereiste attributen.
In het voorbeeld zie je ook hoe twee attributen niet direct uit LDAP komen, maar gegenereerd worden in SimpleSAMLphp. Dit is natuurlijk ook voor de andere attributen mogelijk, SimpleSAMLphp heeft vele authentication processing filters die daarbij kunnen helpen.
Volgende stappen
Stuur de URL met metadata die je vindt op de simpleSAMLphp installatiepagina naar SURFconext support. Zodra zij je IdP hebben toegevoegd aan de testomgeving kun je een inlogpoging wagen via SURFconext.
Als alles werkt raden we aan de configuratie van simpleSAMLphp nog wat aan te scherpen. Zie daarvoor Securing your simpleSAMLphp setup.