Inleiding
Het Zermelo Portal vormt samen met de Zermelo API het online aspect van de Zermelo software. In het portal is online informatie in te zien en te bewerken en de API levert informatie aan verschillende softwareonderdelen en andere partijen. Het portal en de API worden door Zermelo gehost in de "cloud".
Dit hoofdstuk beschrijft met een technische insteek het Zermelo Portal en hoe de verschillende onderdelen van Zermelo 3 hiermee communiceren. Deze informatie is bedoeld voor systeembeheerders en ICT-verantwoordelijken. U kunt na het lezen beter rekening houden met de netwerkcommunicatie van en naar Zermelo en de integratie met uw eigen systemen, en tevens kunt u beoordelen of het systeem betrouwbaar en veilig genoeg is voor uw school.
Voor (systeem)beheerders
U heeft als school een <naam>.zportal.nl adres gekregen. Via dit adres kunnen leerlingen, docenten en ouders inloggen en hun roosters bekijken en tevens vindt de roostervoorbereiding hier plaats. De interface is gebouwd op HTML5 en Javascript. We hebben getest op Chrome, Firefox, Microsoft Edge en Safari en tevens op Android tablets en iPads. Zportal.nl is alleen te bereiken over HTTPS(TLS) op poort 443, we ondersteunen dus geen unencrypted HTTP toegang over poort 80. Let erop dat uw <naam>.zportal.nl adres geen vast IP adres heeft. De Zermelo Desktop moet het portal ook kunnen bereiken, hiervoor maken ze (indien ingesteld) gebruik van de proxy instellingen in Windows. U kunt ook een proxyserver instellen via het zermelo.eig bestand, met de instellingen PROXYADDRESS
, PROXYUSERNAME
en PROXYPASSWORD
. Deze opties zijn ook te bewerken in Zermelo Desktop via Opties > Algemeen > Portal.
Inloggen op Zermelo Portal
Van Zermelo heeft u een wachtwoord ontvangen voor het "admin" account. U kunt naar <naam>.zportal.nl gaan en hier mee inloggen. U kunt daarna een lijst met gebruikersnamen en wachtwoorden importeren. In plaats daarvan kunt u ook kiezen om mailadressen in te lezen waarna u de gebruikers een gegenereerd wachtwoord kunt mailen.
Bij het inloggen op het Zermelo Portal wordt er een tijdelijke code aangemaakt. De interface ruilt deze in voor een access token wat voor de rest van de sessie gebruikt wordt om toegang te krijgen tot de API. Na een periode van inactiviteit wordt deze token ongeldig. Ook het koppelen van de app maakt een access token, deze is daarentegen gelijk 1 jaar geldig. Deze access tokens zijn te verwijderen vanuit het portal als toegang toch ontzegd moet worden. Tevens is het mogelijk vanuit het portal een token aan te maken die bijvoorbeeld gebruikt kan worden om te koppelen met een derde partij.
Gebruik van de WebApp
Voor ouders, docenten en leerlingen is er een WebApp. Ook de WebApp haalt de data uit de Zermelo API. Deze WebApp vervangt de oude app die gedownload moest worden uit een store.
Starten van de software vanuit de browser
Voor gebruikers die met Zermelo Desktop werken is het mogelijk de Zermelo software te starten vanuit de browser. Ze hebben dan in het portal rechten nodig om de desktop te starten en tevens readFiles en modifyFiles. Door het starten vanuit de browser beschikt de software altijd over de juiste verbindingsgegevens.
API
Informatie over het gebruik van de Zermelo API is te vinden op https://developers.zermelo.nl. Alles wat via het portal en de App kan, kan ook via de API.
Beschikbaarheid & Privacy
Voor informatie over de beschikbaarheid van het portal verwijzen wij u naar het Service Level Agreement (SLA). Afspraken over de waarborging van de privacy staan in de verwerkersovereenkomst. Voor informatie over beide documenten kunt u contact opnemen met uw account manager of met de supportdesk.
Architectuur
U bent mogelijk benieuwd hoe de data in de cloud wordt opgeslagen en welke systemen hier van onze kant bij betrokken zijn. Het grootste gedeelte van onze infrastructuur draait bij Amazon Web Services (AWS) de grootste aanbieder van cloud hosting. We gebruiken alleen de diensten die vanuit de EU worden aangeboden.
Bij het maken van een verbinding met *.zportal.nl haalt de software die de verbinding wil maken (bijvoorbeeld de browser) eerst via DNS de IP adressen op waar deze verbinding mee moet maken. Dit kunnen er meer dan een zijn en de software kiest er hier een van uit. Dit adres is van een van onze AWS Elastic Load Balancers (ELB). Deze load balancers worden beheerd door AWS en zijn minstens dubbel opgezet. Deze load balancers verdelen de inkomende verbindingen dan over de applicatieservers. Tevens zorgen ze voor SSL termination. De verbinding tot de ELB is dus versleuteld, de verbinding binnen het AWS netwerk niet. Het beƫindigen van de versleutelde verbinding op de load balancer heeft als voordeel dat bij een beveiligingsprobleem als Heartbleed er minder gevoelige informatie blootgegeven kan worden.
De applicatieservers draaien in een zogenaamde autoscaling group. Dit zorgt ervoor dat als een van de servers niet meer goed functioneert dat deze wordt afgesloten en dat er weer een nieuwe gestart wordt. Ook kunnen we gemakkelijk capaciteit toevoegen bij onverwachte drukte. De servers draaien minimaal in twee verschillende datacenters (availability zones) van AWS. De applicatieservers beschikken over verbinding met een RDS databases van AWS. Tevens halen ze bestanden die zijn opgeslagen voor bijvoorbeeld het delegeercentrum uit de bestandenopslag van AWS (S3).
Ook de database servers zijn dubbel uitgevoerd. Een van de servers is de primary en verwerkt alle verzoeken. De andere is de secondary en doet niet actief mee. Hij wordt wel continu bijgewerkt met de laatste gegevens van de master. Mocht er een probleem optreden dan neemt de secondary het over (wordt de primary) en er wordt een nieuwe secondary gestart. Beide servers draaien in verschillende datacenters.