Designing Kilpi, an authorization framework for web applications: Modeling and implementing an open source TypeScript framework

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

School of Science | Master's thesis

Department

Mcode

Language

en

Pages

83

Series

Abstract

Designing and implementing an authorization system for a web application is a difficult task, which poses major operational and security risks, if constructed incorrectly. Due to the wide variety of existing authorization models and complexity of requirements for an authorization system, implementing such a system can be a challenging task. There is a lack of comprehensive open source solutions for JavaScript and TypeScript applications for authorization, with most solutions being enterprise-oriented languages, proprietary paid third-party services or platform-specific solutions. This thesis introduces Kilpi, an open source TypeScript library for modeling and implementing authorization systems for web applications. This thesis discusses the goals, requirements and challenges of designing and implementing such a system, and evaluates the fully implemented and available Kilpi open source library against these requirements. The most important goals of Kilpi are developer friendliness and flexibility to suit most applications, use cases and authorization models. Additionally, Kilpi provides the flexible functional policy-based access control model based on defining policies as TypeScript functions. This thesis evaluates Kilpi against guidelines from literature as well as tested in multiple production applications and finds it to fulfill its goals well as a flexible authorization solution. Future development includes primarily only superficial improvements on usability.

Web-sovelluksen autorisaatiojärjestelmän suunnittelu ja toteuttaminen on haastavaa, ja virheellinen toteutus voi aiheuttaa merkittäviä turvallisuus- ja operatiivisia riskejä. Autorisaatiomallien moninaisuuden ja autorisaatiojärjestelmän vaatimusten monimutkaisuuden vuoksi järjestelmän toteuttaminen on vaativa tehtävä. JavaScript- ja TypeScript-sovelluksille ei ole kattavia avoimen lähdekoodin autorisaatioratkaisuja, ja useimmat olemassa olevat vaihtoehdot ovat suurille yrityksille suunnattuja kieliä, maksullisia kolmannen osapuolen palveluita tai alustakohtaisia ratkaisuja. Tämä työ esittelee Kilpi-nimisen avoimen lähdekoodin TypeScript-kirjaston, joka mahdollistaa autorisaatiojärjestelmien mallintamisen ja toteuttamisen websovelluksissa. Työssä käsitellään järjestelmän suunnittelun ja toteutuksen tavoitteita, vaatimuksia ja haasteita sekä arvioidaan valmista ja julkaistua Kilpi-kirjastoa näiden vaatimusten näkökulmasta. Kilpi-kirjaston tärkeimmät tavoitteet ovat kehittäjäystävällisyys ja joustavuus, jotta se soveltuu mahdollisimman useisiin sovelluksiin, käyttötapauksiin ja autorisaatiomalleihin. Lisäksi Kilpi esittelee joustavan funktionaalisen politiikkapohjaisen autorisaatiomallin, jossa käyttöoikeuksien linjaukset määritellään TypeScript-funktioina. Tässä työssä arvioidaan Kilpi-kirjastoa kirjallisuudesta löytyvien arviointiperusteiden pohjalta sekä integraation pohjalta useisiin tuotantosovelluksiin. Näillä perusteilla Kilpi todetaan täyttävän hyvin joustavan autorisaatioratkaisun tavoitteet. Tuleva kehitystyö keskittyy pääasiassa pinnallisiin käytettävyyden parannuksiin.

Description

Supervisor

Suoranta, Sanna

Other note

Citation