SURFconext Cookbook Het koppelen van LimeSurvey aan SURFconext
Auteur(s):
Frank Niesten
Versie:
1.0
Datum:
4 december 2013
Radboudkwartier 273 3511 CK Utrecht
Postbus 19035 3501 DA Utrecht
030 - 2 305 305
[email protected] www.surfnet.nl
ING Bank NL54INGB0005936709 KvK Utrecht 30090777 BTW NL 0089.60.173.B01
Het koppelen van LimeSurvey aan SURFconext
Inhoudsopgave 1
Inleiding ........................................................................................................................................... 3 1.1 Benodigdheden ....................................................................................................................... 3 1.2 Stappenplan ............................................................................................................................ 3
2
Voorbereiding ................................................................................................................................. 4 2.1 LimeSurvey .............................................................................................................................. 4 2.2 SURFconext gebruiken als Service Provider (SP) .................................................................. 4
3
Aan de slag ..................................................................................................................................... 6 3.1 Voorbereiding .......................................................................................................................... 6 3.2 simpleSAMLphp testen met het Do It Yourself (DIY) platform ................................................ 6 3.3 SAML authenticatie in LimeSurvey implementeren ................................................................. 7 3.4 Dienst naar productie brengen ................................................................................................ 7 3.5 LimeSurvey updates ................................................................................................................ 8
Deze publicatie is gelicenseerd onder een Creative Commons Naamsvermelding 3.0 Unported licentie Meer informatie over deze licentie vindt u op http://creativecommons.org/licenses/by/3.0/deed.nl
Het koppelen van LimeSurvey aan SURFconext
1
Inleiding
Met behulp van SURFconext is het mogelijk om op eenvoudige wijze (cloud)diensten beschikbaar te maken voor werknemers, onderzoekers docenten en studenten. In deze handleiding wordt uitgelegd welke stappen een instelling moet maken om LimeSurvey te hosten en te koppelen aan SURFconext. Daarnaast komen diverse use-cases aan bod waarbij wordt ingegaan op het gebruik van LimeSurvey als dienst voor het onderwijs. Deze handleiding is geschreven voor IT-architecten en ontwikkelaars. Basiskennis over het inrichten van een webserver, mySQL database en PHP is verreist.
1.1
Benodigdheden • • •
1.2
server (Apache, PHP); MySQL database; SSL Certificaat.
Stappenplan 1. 2. 3. 4. 5. 6.
voorbereiding; installeren simpleSAMLphp; simpleSAMLphp testen; LimeSurvey installeren; SAML authenticatie implementeren in LimeSurvey; de dienst naar de productieomgeving brengen.
3/8
Het koppelen van LimeSurvey aan SURFconext
2
Voorbereiding
2.1
LimeSurvey
LimeSurvey is een geavanceerd online Open Source applicatie waarin men enquêtes kan creëren en afnemen. Het is een wereldwijd veel gebruikt programma door bedrijven, universiteiten en particulieren. LimeSurvey maakt het mogelijk om snel intuïtieve online enquêtes te maken die door grote tot zeer grote groepen kunnen worden ingevuld. LimeSurvey maakt het mogelijk de analyse van data te doen binnen het programma zelf of te exporteren naar Microsoft Excel of analyseprogramma’s zoals SPSS. LimeSurvey is ontwikkeld voor het afnemen van vragenlijsten. Daarom is deze dienst breed in te zetten bij iedere use-case waarbij gegevens van een gebruiker nodig zijn zoals bijvoorbeeld enquêtes afnemen ten behoeve van onderzoek. Daarnaast is LimeSurvey ook geschikt voor het genereren van formulieren die gebruikt kunnen worden op websites. Meer informatie over LimeSurvey is te vinden op www.limesurvey.org.
2.2
SURFconext gebruiken als Service Provider (SP)
SURFconext is een middleware laag die ervoor zorgt dat een gebruiker veilig toegang krijgt tot meerdere diensten. Deze diensten integreren naadloos met de bestaande online omgeving van de eigen instelling. SURFconext is het beste te vergelijken met een groot schakelpaneel waar aan de ene kant de authenticatiesystemen (IdP’s) van alle SURFnet aangesloten instellingen zijn gekoppeld en aan de andere kant de cloud- en instellingsdiensten. Dit schakelpaneel zorgt ervoor dat als een gebruiker probeert te authentiseren bij een dienst, hij/zij wordt doorgestuurd naar de authenticatie pagina van zijn of haar eigen instelling. Indien er succesvol wordt geauthentiseerd krijgt de gebruiker toegang tot de betreffende dienst. SURFconext werkt met het ‘single sign on’ principe. Dit betekent eenmaal geauthentiseerd binnen SURFconext kan een gebruiker ook andere diensten gebruiken, zonder opnieuw te hoeven inloggen. 2.2.1
SAML
Het koppelen van diensten aan SURFconext vindt plaats via de Security Assertion Markup Language (SAML) standaard. Een aan te sluiten dienst dient deze standaard dan ook te ondersteunen. Als dienstaanbieder is het daarom noodzakelijk om SAML te implementeren door naast een dienst ook een SAML service provider te installeren. Deze is beschikbaar voor de meest voorkomende programmeertalen zoals Java, PHP en .NET. Daarnaast is het ook mogelijk om programmeertaal onafhankelijk een dienst aan te sluiten op SURFconext door een Shibboleth proxy voor een dienst te zetten. Afhankelijk van de dienst wordt er een passende SAML implementatie gekozen. LimeSurvey is bijvoorbeeld geschreven in de programmeertaal PHP. Als SAML implementatie wordt daarom gekozen voor simpleSAMLphp. 2.2.2
Identity Provider
Een identity provider (IdP) verstrekt gegevens over de identiteit van de gebruiker waardoor authenticatie van de gebruiker mogelijk is.
4/8
Het koppelen van LimeSurvey aan SURFconext
Om als gebruiker toegang te krijgen tot een dienst moet er worden geauthentiseerd bij een IdP. Op deze manier kan worden gecontroleerd wie de betreffende persoon is en welke identiteiten bij deze persoon horen. Authentiseren gebeurt in de meeste gevallen middels een gebruikersnaam en wachtwoord. Iedere instelling die aangesloten is bij SURFnet heeft een eigen IdP, gekoppeld aan SURFconext. Om instellingsoverstijgend samen te kunnen werken is het belangrijk om te weten of de betreffende instellingen zijn aangesloten bij SURFconext.
!
Meer informatie over IdP’s is te vinden op de volgende url: https://wiki.surfnet.nl/display/surfconextdev/Verbonden+Identity+Providers
2.2.3
Attributen
Om een dienst te kunnen gebruiken moet bekend zijn van welke attributen de SURFconext aangesloten dienst gebruik maakt. Attributen zijn kenmerken van gebruikers, zoals e-mailadres, voornaam, achternaam en organisatie waarvoor iemand werkzaam is.
!
Meer informatie over attributen is te vinden op de volgende url: https://wiki.surfnet.nl/display/surfconextdev/Attributes+in+SURFconext
Nadat een gebruiker succesvol is geauthentiseerd, worden de vrijgegeven attributen beschikbaar gesteld aan de betreffende dienst. Een dienst kan deze informatie vervolgens gebruiken voor bijvoorbeeld het aanmaken van een gebruikersprofiel. LimeSurvey maakt gebruik van de volgende attributen: • • •
eduPersonPrincipalName (uniek id waaraan een gebruiker binnen SURFconext kan worden herkend); displayName (bevat de voornaam van een gebruiker); mail (bevat het e-mailadres van een gebruiker).
5/8
Het koppelen van LimeSurvey aan SURFconext
3
Aan de slag
3.1
Voorbereiding
Voordat simpleSAMLphp en LimeSurvey kunnen worden geïnstalleerd, dient eerst een webserver te worden geïnstalleerd op het operating system (zoals bijvoorbeeld Apache). Daarnaast dient de verbinding beveiligd te worden met een officieel ondertekend SSL-certificaat. Gegevens worden hierdoor versleuteld zodat alle informatie tijdens het ‘transport’ vertrouwelijk blijft en niet leesbaar is voor derden. 3.1.1
Installeren simpleSAMLphp
Na de installatie van de webserver kan worden begonnen met de installatie van simpleSAMLphp. SimpleSAMLphp verzorgt de connectie met SURFconext. De software zorgt er onder andere voor dat een gebruiker tijdens het authentiseren wordt doorgestuurd naar SURFconext en geeft na een succesvolle authenticatie de vrijgegeven attributen door aan LimeSurvey.
!
Een installatie handleiding van simpleSAMLphp is te vinden via de url: https://wiki.surfnet.nl/display/surfconextdev/My+First+SP+-+PHP
3.2
simpleSAMLphp testen met het Do It Yourself (DIY) platform
Als simpleSAMLphp is geïnstalleerd kan deze worden getest. Dit kan door de dienst te laten aansluiten op de Do It Yourself (DIY) omgeving van SURFconext. Met behulp van deze omgeving kan worden ingelogd op de dienst en is het mogelijk om de connectie tussen SURFconext en de dienst te controleren op een correcte werking. Een aansluiting op de DIY-omgeving kan worden aangevraagd bij SURFconext-beheer door een email te sturen naar:
[email protected]. De volgende gegevens van de betreffende dienst moeten worden aangeleverd bij SURFconextbeheer: • •
•
•
• • •
Naam van dienst in het Nederlands en Engels. Administratief contactpersoon o Voor- en achternaam o E-mailadres o Telefoonnummer Technisch contactpersoon o Voor- en achternaam o E-mailadres o Telefoonnummer Support contactpersoon o Voor- en achternaam o E-mailadres o Telefoonnummer Logo van de dienst (max. Afmetingen 500 x 300 px, png-formaat; transparant). Attributen die moeten worden vrijgegeven. URL met metadata van de betreffende dienst.
6/8
Het koppelen van LimeSurvey aan SURFconext
3.3
SAML authenticatie in LimeSurvey implementeren
Om simpleSAMLphp binnen LimeSurvey te kunnen gebruiken, dient het LimeSurvey ‘loginmechanisme’ aangepast te worden. Dit kan heel eenvoudig met behulp van een plug-in ‘AuthSAML’. Deze kan geïnstalleerd worden door de plug-in in de map plug-ins van de LimeSurvey-installatie te plaatsen met behulp van bijvoorbeeld een FTP-cliënt.
!
De plug-in ‘AuthSAML’ voor LimeSurvey is te downloaden via de volgende url: https://github.com/pitbulk/limesurvey-saml
Na het installeren moet de plug-in nog verder worden geconfigureerd om goed te kunnen samenwerken met simpleSAMLphp. • • • • • • • • • •
3.4
Path to simpleSAMLphp folder: /var/simplesaml/ SAML authentication source: default-sp SAML attribute used as username: eduPersonPrincipalName SAML attributed used as email: mail SAML attributed used as name: displayName Authtype base: Authdb Storage base: DbStorage Auto create users: Aanvinken Auto update users: Aanvinken Force SAML login: Aanvinken
Dienst naar productie brengen
Indien de dienst klaar is voor gebruik, kan deze worden aangesloten op de productieomgeving van SURFconext. Dit kan worden aangevraagd bij SURFconext-beheer door een email te sturen naar:
[email protected]. De volgende gegevens moeten daarbij worden aangeleverd: • • • •
•
•
• • • • • • •
Naam van de IDP die moet worden aangesloten op de dienst. Naam van dienst in het Nederlands en Engels. Omschrijving van de dienst in het Nederlands en Engels. Administratief contactpersoon o Voor- en achternaam o E-mailadres o Telefoonnummer Technisch contactpersoon o Voor- en achternaam o E-mailadres o Telefoonnummer Support contactpersoon o Voor- en achternaam o E-mailadres o Telefoonnummer Logo van de dienst (max. Afmetingen 500 x 300 px, png-formaat; transparant). OrganizationDisplayName: Displaynaam van de leverancier. OrganizationName: Formele naam van de leverancier. OrganizationURL: URL naar de website van de leverancier. URL naar de ‘end user agreement’. URL met support informatie over de dienst. Het formaat van het NameID.
7/8
Het koppelen van LimeSurvey aan SURFconext
• • •
! 3.4.1
Attributen die moeten worden vrijgegeven. Lijst met IdP’s die toegang moeten hebben. URL met metadata van de betreffende dienst. Meer informatie over het aansluitproces is te vinden op de website: https://wiki.surfnet.nl/display/surfconextdev/My+First+SP+-+Shibboleth Meerdere IdP’s koppelen
Indien er meerdere IdP’s dienen te worden gekoppeld aan de instellingsdienst kan dit door de aanvraag te mailen naar SURFconext-beheer. Het is aan te bevelen om vooraf de instellingscontactpersoon van de betreffende instelling(en) te informeren over het aanstaande koppelingsverzoek.
3.5
LimeSurvey updates
Regelmatig worden er nieuwe versies van LimeSurvey uitgebracht. Deze releases bevatten, naast nieuwe functionaliteiten, ook beveiligingsupdates die er voor zorgen dat de dienst veilig blijft en er geen beveilingslekken ontstaan. Het wordt dan ook aangeraden om LimeSurvey regelmatig te updaten. Doordat de SAML-implementatie van LimeSurvey wordt geregeld middels een plug-in, kan in de meeste gevallen LimeSurvey worden geüpdate zonder dat de connectie met SURFconext verloren gaat. Het is aan te bevelen om een kopie van de LimeSurvey-installatie inclusief database te maken voordat begonnen wordt aan het update proces. Mochten er onverhoopt toch problemen ontstaan, dan kan deze kopie worden gebruikt om de installatie te herstellen. Ook is het raadzaam om de SURFconext koppeling na een update te testen.
8/8