Säkerhet är ett ständigt omdiskuterat ämne som många vet att de borde lära sig mer om, men där få svar finns. Hur ett företag hanterar allt från kunduppgifter till interna API:er kan på sikt ha stor inverkan på sårbarheten i de interna systemen. Invativa arbetar kontinuerligt för att finna nya säkerhetslösningar.

Som en del av det nu två år gångna initiativet Invativa Student fick studenterna Oskar Selberg, Johannes Leander och Simon Widlund i uppdrag att undersöka nya teknologier och lösningar för autentisering och auktorisering. Färdiga lösningar för autentisering i enskilda applikationer finns redan och används brett av många aktörer. Dessa bygger traditionellt sett på att enskilda webb-, mobil- och server-applikationer implementerar sin egen säkerhet. Med en mindre mängd applikationer och digitala resurser i ett företag fungerar en sådan lösning ofta mer än väl. Men i takt med att både våra kunder och vi själva växer blir det alltmer tydligt att det finns utrymme för en smidigare och mer konsoliderad lösning.
Det traditionella autentiseringsflödet tillåter exempelvis i många fall inte att samma användardata används mellan flera applikationer. Detta gör i sin tur att flera system i ett företag kan kräva olika inloggningar, trots att det i praktiken är samma person som ska ha åtkomst till dessa. I och med den spridda datan ökar även mängden arbete som måste utföras vid ett eventuellt haveri eller intrång, vilket trots allt fortfarande är en verklig risk.

Det är här IdentityServer kommer in i bilden. IdentityServer är en centraliserad lösning för att hantera många olika typer av autentisering. Den senaste versionen är mer konfigurerbar än någonsin och kan även hantera bland annat single sign-on/sign-out och autentisering via externa tjänster såsom Facebook och Google. Version 4 av IdentityServer är i skrivande stund en RC-version och är byggd i .NET Core, den senaste versionen av Microsofts populära ramverk. En av de största nyheterna i .NET Core är kompatibilitet med Mac OS och Linux, utöver Windows.

Våra studenter fick ett fiktivt case där en server-applikation automatiskt tar emot och skickar information via två API:er. På backend-sidan löstes uppgiften genom att integrera IdentityServer i en .NET Core MVC-app där konfigurationen tas emot via HTTP-anrop med JSON-data och sedan skrivs till en textfil. Denna applikation utvecklades i Windows-miljö, men körs nu på en Linux-server. I dagsläget används en typ av autentisering, som i IdentityServer kallas Client Credentials Grant, vilket bakom kulisserna innebär Shared Secret Authentication.

Uppgiften innebar även att skapa ett webbgränssnitt för att konfigurera autentiseringen. Gränssnittet löser ett fundamentalt grundproblem; att på ett användarvänligt sätt kunna lägga till, ta bort och uppdatera konfigurationen. För att göra projektet ännu mer intressant användes Facebooks egenutvecklade och mycket aktuella JavaScriptbibliotek – React JS. Det som gör just React så bra är att det knyter samman Javascript och HTML på ett mycket effektivt sätt. Gränssnittet byggdes så att olika komponenter på ett enkelt sätt kunde lyftas ut och stoppas in i andra projekt utan alltför mycket extra arbete. En stor fördel med att använda webbgränssnittet är att man slipper hantera parametrar som sällan behöver ändras, utan kan fokusera på de viktigaste delarna av konfigurationen. Gränssnittet har full CRUD-funktionalitet, vilket underlättar för användaren som då slipper sitta med en databashanterare.

Flat UI Design – Gränssnitt

Screen Shot 2016-12-19 at 11.48.39

Vi ser enorm potential för att använda dessa två teknologier i våra framtida lösningar. Med ett ökat behov för robusta, integrerade säkerhetslösningar är IdentityServer en het kandidat för att användas på flera av våra applikationer. Med ökad kompetens inom React-ekosystemet skapar vi även nya möjligheter för att snabbt och effektivt utforma och designa användarvänliga applikationer riktade mot den interna verksamheten, såväl som en förbättrad kundupplevelse. Interna system ska inte längre behöva bestå av torra terminalfönster eller stora databashanterare. Invativa ser fram emot att bidra till en sådan utveckling.