SURFconext Cookbook Het koppelen van Wordpress aan SURFconext
Auteur(s):
Frank Niesten
Versie:
1.0
Datum:
7 november 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 Wordpress aan SURFconext
Inhoudsopgave 1 Inleiding ........................................................................................................................................... 3 1.1 Benodigdheden ........................................................................................................................ 3 1.2 Stappenplan ............................................................................................................................. 3 2 Voorbereiding .................................................................................................................................. 4 2.1 Wordpress ................................................................................................................................ 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 Wordpress implementeren ................................................................... 7 3.4 Dienst naar productie brengen ................................................. Error! Bookmark not defined. 3.5 Wordpress Updates ................................................................................................................. 8 4 Wordpress Use-Cases .................................................................................................................... 9
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 Wordpress 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 Wordpress te hosten en te koppelen aan SURFconext. Daarnaast komen diverse use-cases aan bod waarbij wordt ingegaan op het gebruik van Wordpress 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; Wordpress installeren; SAML authenticatie implementeren in Wordpress; de dienst naar de productieomgeving brengen.
3/9
Het koppelen van Wordpress aan SURFconext
2
Voorbereiding
2.1
Wordpress
Wordpress is een contentmangementsysteem (CMS) waarmee gebruikers op eenvoudige wijze weblogs kunnen creëren zonder over technische kennis te hoeven beschikken. Naast het maken van weblogs is het ook mogelijk om Wordpress te gebruiken voor het beheren van websites. Door een ingebouwd plugin-systeem is het mogelijk om de functionaliteiten eenvoudig uit te breiden. Standaard is met één Wordpress-installatie een weblog te beheren. Het is echter ook mogelijk om voor een Multi User (MU) setup te kiezen waarbij het mogelijk is om meerdere blogs te beheren met dezelfde installatie. Het voordeel van deze MU setup is dat het mogelijk is om meerdere blogs te beheren met een SURFconext koppeling. Wordpress is open source software. De software is geschreven in de programmeertaal PHP en kent een grote groep ontwikkelaars.
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 vergelijking met een groot schakelpaneel waar aan de ene kant de authenticatie systemen (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. Wordpress 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/9
Het koppelen van Wordpress 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.
2.2.3
Meer informatie over IdP’s is te vinden op de volgende url: https://wiki.surfnet.nl/display/surfconextdev/Verbonden+Identity+Providers 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. Wordpress maakt gebruik van de volgende attributen: • • • •
uid (uniek id waaraan een gebruiker binnen de instelling kan worden herkend); givenName (bevat de voornaam van een gebruiker); sn (bevat de achternaam van een gebruiker); mail (bevat het e-mailadres van een gebruiker).
5/9
Het koppelen van Wordpress aan SURFconext
3
Aan de slag
3.1
Voorbereiding
Voordat simpleSAMLphp en Wordpress 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 Wordpress.
3.2
Een installatie handleiding van simpleSAMLphp is te vinden via de url: https://wiki.surfnet.nl/display/surfconextdev/My+First+SP+-+PHP
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/9
Het koppelen van Wordpress aan SURFconext
3.3
SAML authenticatie in Wordpress implementeren
Om simpleSAMLphp binnen Wordpress te kunnen gebruiken dient het Wordpress ‘login- mechanisme’ aangepast te worden. Dit kan heel eenvoudig met behulp van de plugin ‘simpleSAMLphp Authentication’. Deze kan geïnstalleerd worden met behulp van de Wordpress plugin-manager. De plugin werkt echter niet in een Wordpress multi user omgeving. Hiervoor is een aangepaste versie van de plugin beschikbaar.
De plugin ‘simpleSAMLphp Authentication’ voor een Wordpress multi user omgeving is te downloaden via de volgende url: https://github.com/OpenConextApps/OpenConextAppsWordPress
Na het installeren moet de plugin nog verder worden geconfigureerd om goed te kunnen samenwerken met simpleSAMLphp. Hiervoor moet bijvoorbeeld worden aangegeven in welke map simpleSAMLphp is geïnstalleerd en welke attributen dienen te worden gebruikt. Meer informatie hierover is terug te vinden op de plugin pagina.
3.4
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 chternaam 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 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
7/9
Het koppelen van Wordpress aan SURFconext
3.4.1
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
Wordpress Updates
Regelmatig worden er nieuwe versies van Wordpress 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 Wordpress regelmatig te updaten. Doordat de SAML implementatie van Wordpress wordt geregeld middels een plugin kan in de meeste gevallen Wordpress worden geupdate zonder dat de connectie met SURFconext verloren gaat. Het is wel aan te bevelen om een kopie van de Wordpress-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. Let op: Vanaf vanaf 3.7.0 installeert Wordpress zelf updates. Het is aan te bevelen deze optie uit te zetten zodat er voorkomen wordt dat de SAML authenticatie plotseling niet meer werkt. Zo zorg je ervoor dat er altijd een gecontroleerde update plaatsvindt.
8/9
Het koppelen van Wordpress aan SURFconext
4
Wordpress Use-Cases
4.1.1
Website
Door Wordpress als website-omgeving te gebruiken kunnen docenten, studenten en onderzoekers zelfstandig websites creëren en onderhouden. In het onderwijs worden websites regelmatig ingezet om bijvoorbeeld studie- en onderzoeksresultaten te presenteren. Met behulp van Wordpress is een website op een relatief eenvoudige manier te realiseren. Zoals hierboven beschreven is het aan te bevelen om Wordpress te installeren als een multi-user omgeving omdat de SURFconext-koppeling dan maar eenmalig hoef te worden gemaakt. Voor iedere website kan dan een apart URL-pad worden aangemaakt (www.domijnnaam.com/url-pad). De websites zijn dan allemaal beschikbaar onder het hoofddomein. 4.1.2
Blog
Door Wordpress als blog-omgeving te gebruiken kunnen docenten, studenten en onderzoekers zelfstandig een weblog creëren en onderhouden. In het onderwijs worden weblogs bijvoorbeeld ingezet om middels korte berichten kennis te delen. Bij lerarenopleidingen worden weblogs ook ingezet om studenten stage-ervaringen te laten delen. Een voordeel van een weblog is dat lezers ervan opmerkingen kunnen plaatsen bij blogberichten. In het onderwijs kun je deze functionaliteit gebruiken door studenten elkaar bijvoorbeeld peer feedback te laten geven op elkaars blogberichten. Op deze manier leert men van en met elkaar en wordt alle kennis tevens digitaal gearchiveerd.
9/9