REST-rajapinnan autentikointi ja pääsynhallinta : JWT-pohjaisen API-avaimen toteutus
Seppänen, Hanne-Mari (2025)
Seppänen, Hanne-Mari
2025
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202504287967
https://urn.fi/URN:NBN:fi:amk-202504287967
Tiivistelmä
Tämän opinnäytetyön tavoitteena oli toteuttaa sopiva ratkaisu API-avainten hallintaan Karelian Älykäs tietoyhteisö -hankkeeseen liittyvässä Campus API -rajapinnassa. Opinnäytetyössä tarkastellaan myös ohjelmistorajapintojen turvallisuutta ja käsitellään niihin liittyvät keskeisimmät käsitteet, kuten REST-periaatteet, HTTP-protokolla, autentikointi ja valtuutus sekä lyhyesti GDPR:n asettamat vaatimukset rajapintojen tietoturvalle.
Opinnäytetyössä toteutettiin Campus API -rajapintaan JWT-pohjainen API-avain, jonka käyttäjä voi hakea oppilaitoksen kehittäjäportaaliverkkosivulta käyttäjätunnuksilla. Kehittäjäportaaliin luotiin tätä varten kirjautumistoiminnallisuus ja istunnon hallinta. Avain mahdollistaa pääsyn Campus API -rajapinnan resursseihin, on voimassa kahdeksan tunnin ajan ja sisältää avaimen omistajan käyttäjätunnuksen. Toteutus tehtiin NodeJS-ympäristössä ja järjestelmä toteutettiin prototyyppinä.
Tuloksena saatiin toteutettua Campus API -rajapintaan pääsynhallinta, joka rajoittaa rajapinnan käytön vain voimassa oleville ja hyväksytyille avaimille. Tuloksia arvioidessa keskeisiksi kehityskohdiksi nousi monipuolisen testauksen tarve ja tietoturvaan liittyvät kysymykset, kuten avaimen peruutusmahdollisuus ennen sen voimassaolon loppumista. Opinnäytetyössä luotua prototyyppiä voidaan hyödyntää opetuksessa tai jatkokehittää tarpeen mukaan, esimerkiksi integroimalla siihen koulun nykyinen autentikointijärjestelmä tai HAKA-kirjautuminen. Opinnäytetyön lopussa pohditaan jatkokehitysideoita ja mitä niiden toteuttaminen vaatisi käytännössä. The aim of this thesis was to implement a key management solution for Karelia’s Campus API, which is related to Karelia University of Applied Sciences’ Intelligent Knowledge Community project. The thesis also examines the security of APIs and discusses the key concepts related to them, such as REST principles, the HTTP protocol, authentication, authorization and GDPR requirements for data security of interfaces.
A JWT token was implemented for the Campus API, and it can be retrieved from Karelia’s developer portal using credentials. For this purpose, login functionality and session management were developed for the portal. Token enables access to the Campus API, is valid for eight hours and includes the key owner’s username. The implementation was done as a prototype in a NodeJS environment.
The result was a simple access management to the Campus API, which limits the use of the API to only approved and valid tokens. The need for wider testing and issues related to information security, such as the possibility of cancelling the key before expiration, became development points when evaluating the results. The prototype created in this thesis can be utilized in education or further developed as needed, for example, by integrating it with the school’s current authentication system or HAKA login. At the end of the thesis, ideas for further development are considered and what it would require implementing them in practice.
Opinnäytetyössä toteutettiin Campus API -rajapintaan JWT-pohjainen API-avain, jonka käyttäjä voi hakea oppilaitoksen kehittäjäportaaliverkkosivulta käyttäjätunnuksilla. Kehittäjäportaaliin luotiin tätä varten kirjautumistoiminnallisuus ja istunnon hallinta. Avain mahdollistaa pääsyn Campus API -rajapinnan resursseihin, on voimassa kahdeksan tunnin ajan ja sisältää avaimen omistajan käyttäjätunnuksen. Toteutus tehtiin NodeJS-ympäristössä ja järjestelmä toteutettiin prototyyppinä.
Tuloksena saatiin toteutettua Campus API -rajapintaan pääsynhallinta, joka rajoittaa rajapinnan käytön vain voimassa oleville ja hyväksytyille avaimille. Tuloksia arvioidessa keskeisiksi kehityskohdiksi nousi monipuolisen testauksen tarve ja tietoturvaan liittyvät kysymykset, kuten avaimen peruutusmahdollisuus ennen sen voimassaolon loppumista. Opinnäytetyössä luotua prototyyppiä voidaan hyödyntää opetuksessa tai jatkokehittää tarpeen mukaan, esimerkiksi integroimalla siihen koulun nykyinen autentikointijärjestelmä tai HAKA-kirjautuminen. Opinnäytetyön lopussa pohditaan jatkokehitysideoita ja mitä niiden toteuttaminen vaatisi käytännössä.
A JWT token was implemented for the Campus API, and it can be retrieved from Karelia’s developer portal using credentials. For this purpose, login functionality and session management were developed for the portal. Token enables access to the Campus API, is valid for eight hours and includes the key owner’s username. The implementation was done as a prototype in a NodeJS environment.
The result was a simple access management to the Campus API, which limits the use of the API to only approved and valid tokens. The need for wider testing and issues related to information security, such as the possibility of cancelling the key before expiration, became development points when evaluating the results. The prototype created in this thesis can be utilized in education or further developed as needed, for example, by integrating it with the school’s current authentication system or HAKA login. At the end of the thesis, ideas for further development are considered and what it would require implementing them in practice.