Access control for Linked Data applications
Mustonen, Pasi (2013)
Mustonen, Pasi
2013
Tietotekniikan koulutusohjelma
Luonnontieteiden tiedekunta - Faculty of Natural Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2013-06-05
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201306141220
https://urn.fi/URN:NBN:fi:tty-201306141220
Tiivistelmä
This thesis investigates how access control can be implemented in applications which utilize Linked Data. From the viewpoint of access control the relevant subject is, instead of Linked Open Data, specifically Linked Closed Data.
The research question was scrutinised by implementing with Java programming language a module, called AccessController, with which applications can retrieve data from servers regardless if the data is open or closed. The module also manages credentials of the end-user by storing the credentials as encrypted in a file.
For closed data protected with OAuth 2.0, the module offers an option to grant access tokens for an untrusted third-party application. With access tokens the untrusted can retrieve data owned by the granter.
The module was also used as a library when implementing a Apache Ant task. In an Ant pipeline the task has the same features as the module has in a Java application.
The AccessController module meets its requirements well. However, the most significant weakness is that the expiring time of access tokens cannot be controlled. Tämä diplomityö tutkii, kuinka voidaan toteuttaa pääsynhallinta sovelluksissa, jotka hyödyntävät linkitettyä dataa (Linked Data). Pääsynhallinnan kannalta oleellista on nimenomaan linkitetty suljettu data (Linked Closed Data) linkitetyn avoimen datan (Linked Open Data) sijasta.
Tutkimuskysymystä selvitettiin toteuttamalla Java-ohjelmointikielellä moduuli, AccessController, jonka avulla sovellukset voivat hakea dataa palvelimilta riippumatta siitä onko data avointa vai suljettua. Moduuli myös hallinnoi loppukäyttäjän kirjautumistietoja säilyttämällä niitä kryptattuna tiedostossa.
OAuth 2.0:lla suojatulle suljetulle datalle moduuli tarjoaa mahdollisuuden myöntää ei-luotetulle kolmannelle osapuolella ns. access token’eita, joilla ei-luotettu applikaatio voi hakea myöntäjän omistamaa dataa.
Moduulia käytettiin myös kirjastona toteutettaessa Apache Ant task’ia. Toteutetulla task’lla voi Ant putkilinjassa tehdä samat toiminnot kuin käytettäessä moduulia Java-applikaatiossa.
AccessController-moduuli täyttää sille osoitetut vaatimukset hyvin. Suurimpana puutteena mainittakoon kuitenkin se, ettei access token’eiden vanhentumisaikaa voi hallita.
The research question was scrutinised by implementing with Java programming language a module, called AccessController, with which applications can retrieve data from servers regardless if the data is open or closed. The module also manages credentials of the end-user by storing the credentials as encrypted in a file.
For closed data protected with OAuth 2.0, the module offers an option to grant access tokens for an untrusted third-party application. With access tokens the untrusted can retrieve data owned by the granter.
The module was also used as a library when implementing a Apache Ant task. In an Ant pipeline the task has the same features as the module has in a Java application.
The AccessController module meets its requirements well. However, the most significant weakness is that the expiring time of access tokens cannot be controlled.
Tutkimuskysymystä selvitettiin toteuttamalla Java-ohjelmointikielellä moduuli, AccessController, jonka avulla sovellukset voivat hakea dataa palvelimilta riippumatta siitä onko data avointa vai suljettua. Moduuli myös hallinnoi loppukäyttäjän kirjautumistietoja säilyttämällä niitä kryptattuna tiedostossa.
OAuth 2.0:lla suojatulle suljetulle datalle moduuli tarjoaa mahdollisuuden myöntää ei-luotetulle kolmannelle osapuolella ns. access token’eita, joilla ei-luotettu applikaatio voi hakea myöntäjän omistamaa dataa.
Moduulia käytettiin myös kirjastona toteutettaessa Apache Ant task’ia. Toteutetulla task’lla voi Ant putkilinjassa tehdä samat toiminnot kuin käytettäessä moduulia Java-applikaatiossa.
AccessController-moduuli täyttää sille osoitetut vaatimukset hyvin. Suurimpana puutteena mainittakoon kuitenkin se, ettei access token’eiden vanhentumisaikaa voi hallita.