Multi tenant azure website

Multi tenant website op Azure

Mede omdat ons kantoor volledig is ingericht op Het Nieuwe Werken met allemaal flexplekken is er niet altijd zicht op wie er op kantoor aanwezig is. In het geval van een calamiteit is het echter wel belangrijk om te kunnen bepalen hoeveel mensen er binnen zijn. Om dit inzichtelijk te maken heeft de directie ons gevraagd een tool te ontwikkelen waarmee op ieder moment te zien is welke medewerkers binnen zijn.

Elektronische toegangscontrole

We maakten al gebruik van een elektronisch toegangscontrolesysteem waarbij iedere medewerker met een persoonlijk ‘token’ toegang heeft tot het kantoor. Bij het verlaten van het pand checkt een medewerker met behulp van deze token weer uit. De tool die we nu ontwikkeld hebben, leest de aanwezigheidsinformatie uit het toegangssysteem en toont deze via een website. We hebben de tool zo opgezet dat we de toegangssystemen van verschillende leveranciers kunnen uitlezen.

Microsoft Azure

Om een aantal redenen hebben wij ervoor gekozen deze tool te ontwikkelen op basis van Microsoft Azure, het publieke Cloud platform van Microsoft. Ten eerste biedt Azure een aantal voorzieningen om dit zeer kosten efficiënt te realiseren. We gebruiken bijvoorbeeld  Azure Websites platform voor onze website en gebruiken Azure Blob Storage voor de opslag van data. In dit geval is het gebruik maken van Azure Blob Storage bijvoorbeeld vele malen goedkoper dan het hosten van een eigen SQL Azure database. Een ander voordeel van onze oplossing op Azure is dat deze ook beschikbaar blijft in het geval van een calamiteit in het pand. Iedere minuut wordt de actuele data opgeslagen in Azure Blob Storage. De website, die het medewerkersoverzicht toont, en de meest actuele data blijft dus altijd beschikbaar!

Multi-tenant

Een van de aanvullende eisen was om de tool niet alleen voor gebruik binnen Delta-N te ontwikkelen, maar ook beschikbaar te maken voor andere organisaties. We hebben dus een multi-tenant ASP.NET MVC oplossing gerealiseerd. Hierdoor kunnen meerdere organisaties van dezelfde toepassing gebruik maken. Zonder dat hier een aparte installatie voor nodig is.
Voor de autorisatie hebben we gebruik gemaakt van de standaardoplossing die Azure hiervoor biedt: Azure Active Directory (AAD). Azure Active Directory integreert naadloos met ASP.NET MVC en het gebruik ervan scheelt veel ontwikkelwerk. Iedere organisatie die gebruik wil maken van onze tool kan zijn eigen AAD koppelen aan onze oplossing. Organisaties kunnen dus zelf beheren welke gebruikers toegang krijgen tot de tool en wij kunnen garanderen dat een organisatie alleen toegang heeft tot zijn eigen data.

De tool is inmiddels bij onszelf in gebruik en ook beschikbaar voor andere organisaties. Op dit moment zijn we bezig om de data ook via een app beschikbaar te maken. Hiervoor maken we gebruik van Xamarin.

Tomasz Lapinski, ontwikkelaar