OpenID Connect ja sen hyödyntäminen mikropalveluissa
Tiitinen, Mikko (2020)
Tiitinen, Mikko
2020
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:amk-2020121427961
https://urn.fi/URN:NBN:fi:amk-2020121427961
Tiivistelmä
Opinnäytetyössä tehtiin selvitys OpenID Connect -protokollan hyödyntämisestä ja implementoinnista mikropalveluympäristössä. Tavoitteena oli saada aikaan esimerkkitoteutus aiheesta, sekä dokumentaatiota toimeksiantajalle, jota mahdollisesti voidaan hyödyntää tulevissa projekteissa.
Toteutuksessa rakennettiin mikropalveluympäristö, johon kuului mikropalveluiden lisäksi yhdyskäytäväpalvelu, joka toimi yksittäisenä tulopisteenä sen takana oleville mikropalveluille sekä rekisteripalvelu, joka pystyi jakamaan tietoja palveluista muille. Ympäristö toteutettiin Java-ohjelmointikielellä, sekä sen ympärille luodulla Spring Framework -sovelluskehyksellä. OpenID Connect -protokolla implementoitiin Keycloak OpenID Connect -tarjoajalla, sekä Spring Security -sovelluskehyksellä. Keycloak tarjosi valmiin implementoinnin käyttäjien autentikoimiselle OpenID Connectin autentikointiprosesseilla, sekä OpenID Connectin identiteettipoletin ja valtuutuspoletin jakamisen asiakassovellukselle. Spring Securityn avulla yhdyskäytäväpalvelussa pystyttiin aloittamaan autentikointiprosessi protokollan mukaan, sekä vastaanottamaan ja jakamaan OpenID Connectin valtuutuspolettia eteenpäin sen takana oleville mikropalveluille. Mikropalveluissa Spring Securityn avulla pystyttiin vastaanottamaan ja validoimaan yhdyskäytäväpalvelun toimittama valtuutuspoletti, sekä purkamaan siitä käyttäjälle määritellyt roolit.
Lopputuloksena saatiin aikaan mikropalveluympäristö, jossa OpenID Connectia hyödynnettiin onnistuneesti käyttäjän autentikoimisessa yhdyskäytäväpalvelussa, sekä mikropalveluiden päätepisteiden pääsynvalvonnassa. Toimeksiantajalle saatiin aikaan esimerkkitoteutus, sekä dokumentaatio aiheesta, jota se voi mahdollisesti hyödyntää tulevissa projekteissa.
Toteutuksessa rakennettiin mikropalveluympäristö, johon kuului mikropalveluiden lisäksi yhdyskäytäväpalvelu, joka toimi yksittäisenä tulopisteenä sen takana oleville mikropalveluille sekä rekisteripalvelu, joka pystyi jakamaan tietoja palveluista muille. Ympäristö toteutettiin Java-ohjelmointikielellä, sekä sen ympärille luodulla Spring Framework -sovelluskehyksellä. OpenID Connect -protokolla implementoitiin Keycloak OpenID Connect -tarjoajalla, sekä Spring Security -sovelluskehyksellä. Keycloak tarjosi valmiin implementoinnin käyttäjien autentikoimiselle OpenID Connectin autentikointiprosesseilla, sekä OpenID Connectin identiteettipoletin ja valtuutuspoletin jakamisen asiakassovellukselle. Spring Securityn avulla yhdyskäytäväpalvelussa pystyttiin aloittamaan autentikointiprosessi protokollan mukaan, sekä vastaanottamaan ja jakamaan OpenID Connectin valtuutuspolettia eteenpäin sen takana oleville mikropalveluille. Mikropalveluissa Spring Securityn avulla pystyttiin vastaanottamaan ja validoimaan yhdyskäytäväpalvelun toimittama valtuutuspoletti, sekä purkamaan siitä käyttäjälle määritellyt roolit.
Lopputuloksena saatiin aikaan mikropalveluympäristö, jossa OpenID Connectia hyödynnettiin onnistuneesti käyttäjän autentikoimisessa yhdyskäytäväpalvelussa, sekä mikropalveluiden päätepisteiden pääsynvalvonnassa. Toimeksiantajalle saatiin aikaan esimerkkitoteutus, sekä dokumentaatio aiheesta, jota se voi mahdollisesti hyödyntää tulevissa projekteissa.