Design and Implementation of a Wi-Fi Portal System
Asplund, Tobias (2021)
Asplund, Tobias
2021
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi-fe2021060835660
https://urn.fi/URN:NBN:fi-fe2021060835660
Tiivistelmä
The goal of the thesis is to develop a proof-of-concept of a Wi-Fi portal serviceto evaluate the feasibility and scope for creating a fully-fledged Wi-Fi portal solu-tion. A Wi-Fi portal is the webpage that users are required to interact with to gainaccess to a public Wi-Fi network. The focus of the work was to build the frame-work for a Wi-Fi portal system to be deployed on Cisco Meraki access points andcreate the user interfaces for editing and managing portals. The proof-of-concepthas support for creating and customizing portals in a WYSIWYG (what you see iswhat you get) editor, with a live preview of the created portal. The portal pagehas support for authenticating through email, SMS and Facebook authentication.Additional third-party services can be implemented in a similar manner. Out of aselection of alternatives for which technologies to use for the portal, Golang withthe Golang template packages was deemed to be the best solution for serving theportal. Using Golang to generate the HTML on the server allows for moving mostof the logic away from users devices and moving possible points of failure to acontrolled environment. The proof-of-concept fulfilled the requirements set up atthe start of the project. A complete product can be developed using the findingsin the thesis and the proof-of-concept as a base. ----------
Wi-Fi-portaler utgör standarden för hur man autentiserar användare i publika nätverk. En Wi-Fi-portal är den webbsida som en användare ser när hen ansluter till ett publikt nätverk som kräver autentisering. Autentiseringen kan variera från att endast godkänna ett slutanvändaravtal till att logga in med ett socialt mediekonto eller köpa tillgång till internet. Avhandlingen redogör för processen för skapandet av en sådan portal och tillhörande infrastruktur. Målet med avhandlingen är att skapa en prototyp för Wi-Fi portalsystemet, men den behandlar även kraven för en fullständig produkt. I prototypen ingår ett verktyg för att editera portalsidor, ett system för att hantera portaler och ansluta dem till Wi-Fi accesspunkter och den nödvändiga mjukvaruinfrastrukturen som krävs för att rendera och leverera portalerna. En färdig produkt behöver stöda accesspunkter från de största tillverkarna, prototypen kommer dock endast fokusera på accesspunkter av märket Cisco Meraki.
En Wi-Fi accesspunkt är en fysisk hårdvaruenhet som möjliggör trådlös anslutning till ett nätverk. För en slutanvändare syns nätverket som ett Wi-Fi-nätverk med ett SSID (Service Set IDentifier) som syns som ett nätverksnamn. En accesspunkt skapar inte ett eget nätverk såsom en router utan utvidgar ett existerande nätverk och ger anslutna enheter tillgång till det nätverket. En accesspunkt kan konfigureras enskilt för personligt bruk eller centralt för företagsbruk. För prototypen av portalsystemet kommer accesspunkterna hanteras manuellt, men för en fullständig produkt behövs ett system för att konfigurera Wi-Fi-portaler för en hel verksamhetsplats där portaler ska användas.
Cisco Meraki-accesspunkten som används för projektet konfigureras via ett moln-baserat Meraki-användargränssnitt. I användargränssnittet finns möjligheten att konfigurera en adress varifrån Wi-Fi-portalen serveras. När en slutanvändare ansluter till ett trådlöst nätverk med en mobilenhet försöker mobilenheten kontrollera ifall nätverket ligger bakom en portal eller inte. Det gör enheten genom att göra en HTTP-förfrågan till en specifik webbadress. Ifall nätverket ligger bakom en portal kommer accesspunkten omdirigera förfrågan till portalens adress och mobilenheten har då verifierat att nätverket ligger bakom en portal. Ifall mobilenhetens förfrågan omdirigeras öppnar mobilenheten webbsidan från den slutgiltiga adressen, det vill säga portalen, i en webbläsare för att låta slutanvändaren utföra nödvändig autentisering. Ifall mobilenheten inte registrerar en omdirigering öppnas inte en webbläsare och nätverket kan användas som vanligt.
Teknologierna som väljs för att skapa portalsystemet bör fungera väl tillsammans med redan existerande infrastruktur vid företaget. Att ta i bruk nya teknologier eller programmeringsspråk kräver att de är märkbart bättre än de teknologier som redan används inom företaget. Lösningen bör fungera väl även på äldre mobilenheter för att maximera den nåbara användarbasen. Det är dock inte ett krav att stöda enheter som har en mycket liten användarbas ifall enheterna i fråga kräver lösningar som gör systemet mer komplext.
En handfull teknologier har valts ut baserad på popularitet inom branchen och kännedom inom företaget. Teknologierna kan grupperas som sådana som renderar portalen på servern och sådana som renderar portalen i webbläsaren på mobilenheten. Hur portalerna sparas och hanteras är beroende av vilka teknologier som används för att skapa portalsystemet. Portalediteraren ska bli det verktyg som används för att skapa och editera portaler. Portalediteraren kommer att integreras i företagets existerande användargränssnitt och kommer därför vara baserat på samma teknologier som använts där. Den kommer byggas som en Angular-komponent och ska även kunna lista existerande portaler och arkivera gamla eller oanvända portaler. Av teknologierna som utvärderats för själva portalen valdes programmeringsspråket Golang med sina text- och HTML-mallpaket. Denna lösning möjliggör rendering på servern och minimerar därför möjliga problem som kan uppkomma vid rendering på en mobilenhet. Själva portalkonfigurationen blir ett JSON-objekt som innehåller all information som behövs för att rendera portalen. Portalkonfigurationen skickas från portalediteraren till en databas, varifrån den begärs av Golang-applikationen som renderar och serverar portalen till slutanvändaren.
Resultatet av avhandlingen fyller kraven för en prototyp bra och även en del av kraven för en fullständig produkt. En hel del fortsatt arbete krävs dock för att nå slutmålet, i nuläget saknas hela den automatiserade hanteringen av accesspunkter, vilket kan kräva en betydande del arbete att implementera för att stöda flera tillverkares hårdvara. Användargränssnittet i portalediteraren har alla de listade funktionerna för prototypen, men den grafiska delen och användarvänligheten behöver utvecklas för en slutgiltig produkt.
Wi-Fi-portaler utgör standarden för hur man autentiserar användare i publika nätverk. En Wi-Fi-portal är den webbsida som en användare ser när hen ansluter till ett publikt nätverk som kräver autentisering. Autentiseringen kan variera från att endast godkänna ett slutanvändaravtal till att logga in med ett socialt mediekonto eller köpa tillgång till internet. Avhandlingen redogör för processen för skapandet av en sådan portal och tillhörande infrastruktur. Målet med avhandlingen är att skapa en prototyp för Wi-Fi portalsystemet, men den behandlar även kraven för en fullständig produkt. I prototypen ingår ett verktyg för att editera portalsidor, ett system för att hantera portaler och ansluta dem till Wi-Fi accesspunkter och den nödvändiga mjukvaruinfrastrukturen som krävs för att rendera och leverera portalerna. En färdig produkt behöver stöda accesspunkter från de största tillverkarna, prototypen kommer dock endast fokusera på accesspunkter av märket Cisco Meraki.
En Wi-Fi accesspunkt är en fysisk hårdvaruenhet som möjliggör trådlös anslutning till ett nätverk. För en slutanvändare syns nätverket som ett Wi-Fi-nätverk med ett SSID (Service Set IDentifier) som syns som ett nätverksnamn. En accesspunkt skapar inte ett eget nätverk såsom en router utan utvidgar ett existerande nätverk och ger anslutna enheter tillgång till det nätverket. En accesspunkt kan konfigureras enskilt för personligt bruk eller centralt för företagsbruk. För prototypen av portalsystemet kommer accesspunkterna hanteras manuellt, men för en fullständig produkt behövs ett system för att konfigurera Wi-Fi-portaler för en hel verksamhetsplats där portaler ska användas.
Cisco Meraki-accesspunkten som används för projektet konfigureras via ett moln-baserat Meraki-användargränssnitt. I användargränssnittet finns möjligheten att konfigurera en adress varifrån Wi-Fi-portalen serveras. När en slutanvändare ansluter till ett trådlöst nätverk med en mobilenhet försöker mobilenheten kontrollera ifall nätverket ligger bakom en portal eller inte. Det gör enheten genom att göra en HTTP-förfrågan till en specifik webbadress. Ifall nätverket ligger bakom en portal kommer accesspunkten omdirigera förfrågan till portalens adress och mobilenheten har då verifierat att nätverket ligger bakom en portal. Ifall mobilenhetens förfrågan omdirigeras öppnar mobilenheten webbsidan från den slutgiltiga adressen, det vill säga portalen, i en webbläsare för att låta slutanvändaren utföra nödvändig autentisering. Ifall mobilenheten inte registrerar en omdirigering öppnas inte en webbläsare och nätverket kan användas som vanligt.
Teknologierna som väljs för att skapa portalsystemet bör fungera väl tillsammans med redan existerande infrastruktur vid företaget. Att ta i bruk nya teknologier eller programmeringsspråk kräver att de är märkbart bättre än de teknologier som redan används inom företaget. Lösningen bör fungera väl även på äldre mobilenheter för att maximera den nåbara användarbasen. Det är dock inte ett krav att stöda enheter som har en mycket liten användarbas ifall enheterna i fråga kräver lösningar som gör systemet mer komplext.
En handfull teknologier har valts ut baserad på popularitet inom branchen och kännedom inom företaget. Teknologierna kan grupperas som sådana som renderar portalen på servern och sådana som renderar portalen i webbläsaren på mobilenheten. Hur portalerna sparas och hanteras är beroende av vilka teknologier som används för att skapa portalsystemet. Portalediteraren ska bli det verktyg som används för att skapa och editera portaler. Portalediteraren kommer att integreras i företagets existerande användargränssnitt och kommer därför vara baserat på samma teknologier som använts där. Den kommer byggas som en Angular-komponent och ska även kunna lista existerande portaler och arkivera gamla eller oanvända portaler. Av teknologierna som utvärderats för själva portalen valdes programmeringsspråket Golang med sina text- och HTML-mallpaket. Denna lösning möjliggör rendering på servern och minimerar därför möjliga problem som kan uppkomma vid rendering på en mobilenhet. Själva portalkonfigurationen blir ett JSON-objekt som innehåller all information som behövs för att rendera portalen. Portalkonfigurationen skickas från portalediteraren till en databas, varifrån den begärs av Golang-applikationen som renderar och serverar portalen till slutanvändaren.
Resultatet av avhandlingen fyller kraven för en prototyp bra och även en del av kraven för en fullständig produkt. En hel del fortsatt arbete krävs dock för att nå slutmålet, i nuläget saknas hela den automatiserade hanteringen av accesspunkter, vilket kan kräva en betydande del arbete att implementera för att stöda flera tillverkares hårdvara. Användargränssnittet i portalediteraren har alla de listade funktionerna för prototypen, men den grafiska delen och användarvänligheten behöver utvecklas för en slutgiltig produkt.