Bachelor's Thesis

Cloud-Native Single Sign-On with OpenID Connect and Keycloak

Final Thesis 1.77 MB

Author of thesis: Bc. Maksym Koval

Acad. year: 2023/2024

Supervisor: doc. Mgr. Kamil Malinka, Ph.D.

Reviewer: Ing. Jiří Pavela

Abstract:

This thesis delves into the principles of OAuth 2.0 and OpenID Connect protocols and explains how they should be implemented in a microservice architecture. Two Angular web clients and two Spring Boot servers were developed as applications for the demonstration. The paper also explains how to use Keycloak as an identity provider for the above applications. The result is centralized authentication of all applications as well as implementation of Single Sign On mechanism in a cloud-native environment.

Keywords:

OAuth 1.0, OAuth 2.0, OpenID Connect, Keycloak, Single sign-on, Angular, Spring Boot, Access Token, ID Token, Authorization, Authentication, Identity

Date of defence

12.06.2024

Result of the defence

Defended (thesis was successfully defended)

znamkaEznamka

Grading

E

Process of defence

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm E.

Topics for thesis defence

  1. Kapitola 7 popisuje sadu testů pro ověření funkčnosti řešení, které byly zřejmě prováděny manuálně. Přestože to zadání explicitně nevyžaduje, nezvažoval jste automatizaci testovacího procesu pro lepší udržovatelnost demonstračního řešení?
  2. Ověřoval jste, zda navržené řešení neobsahuje vážné bezpečnostní zranitelnosti? Zvažoval jste např. provedení jednoduchého interního penetračního testování pro odhalení potenciálních bezpečnostních chyb v implementaci?

Language of thesis

English

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

doc. Ing. Ondřej Ryšavý, Ph.D. (předseda)
Ing. Tomáš Milet, Ph.D. (člen)
Ing. Josef Strnadel, Ph.D. (člen)
Ing. Matěj Grégr, Ph.D. (člen)
Ing. Filip Orság, Ph.D. (člen)

Supervisor’s report
doc. Mgr. Kamil Malinka, Ph.D.

Přes extrémní spěšnost vznikla ve výsledku poměrně solidní práce, která naplňuje parametry kladené na bakalářskou práci. Nicméně z výše uvedených důvodů ji nemohu hodnotit lépe než "E".

Evaluation criteria Verbal classification
Informace k zadání

Jedná se průměrně obtížnou implementační práci. Jejím cílem bylo nastudovat technologie Keycloak, OpenID Connect a OAuth2 a vytvořit demonstrační aplikaci, které ukáže jak je správně integrovat. Součástí zadání bylo i testování a shrnutí získaných poznatků do formy best practices. Všechny body zadání byly splněny.

Práce s literaturou

Práce obsahuje spíše menší množství zdrojů, kde převažují technické online zdroje. Nicméně to odpovídá implementačnímu zaměření práce. 

Systému Theses.cz uvádí podobnost 26%. Významná část však tvoří podobnosti s technickou dokumentací a popisem technologií v teoretických částech práce, kde jsou zdroje odkazovány. Některé části jsou hůře parafrázovány, nicméně cílem práce nebylo převykládat technickou dokumentaci, ale ukázat, jak s technologií pracovat, a to bylo splněno. Přes mé výtky si tak nemyslím, že by autor překročil hranice citační etiky.

Aktivita během řešení, konzultace, komunikace

Student na práci se stejným zadáním pracoval pod mým vedením již minulý rok. Po půl roce aktivity se však odmlčel a práci neodevzdal. Následně se ozval až o rok později, tedy cca 4 týdny před deadlinem. Předtím neproběhla žádná komunikace, student ani neměl zajištěné opětovné vypsání tématu. Z důvodu hotových částí z minulého roku, kdy byl student aktivní a zpracoval teoretický základ a naučil se požadované technologie, jsem studentovi téma vypsal s požadavky na extrémní intenzitu očekávané práce. Student poté poctivě každý týden reportoval průběh prací, které měli velmi solidní progres a měl jsem tak určitou možnost výsledek ovlivnit a komentovat. 

Aktivita při dokončování

viz přechozí část.

Publikační činnost, ocenění

žádná

Points proposed by supervisor: 50

Grade proposed by supervisor: E

Reviewer’s report
Ing. Jiří Pavela

Jedná se o průměrně dobře vyhotovenou práci, která splňuje všechny body zadání. Zadání jako takové působí mírně podprůměrně obtížně z hlediska implementace; bylo však zapotřebí nastudovat bezpečnostní mechanismy technologií Keycloak a OpenID Connect/OAuth2. Až na drobné nedostatky v některých aspektech prezentační úrovně technické zprávy nemám k práci větších výhrad. Navrhuji proto hodnocení práce stupněm C.

Evaluation criteria Verbal classification Points
Náročnost zadání

Evaluation level: průměrně obtížné zadání

Jedná se o mírně podprůměrně obtížné zadnání práce.

Prezentační úroveň technické zprávy

Logická návaznost jednotlivých kapitol a sekcí je v pořádku. Měl bych však drobné výtky k rozsahu některých kapitol nebo sekcí, které často obsahují pouze jeden krátký odstavec textu (např. sekce 3.8 až 3.13). Stejně tak mi přišla obsahově velmi stručná celá kapitola 4. V kapitolách 8 a 9 se vyskytují krátké subjektivní netechnické sekce, které by se neměly v práci technického charakteru vyskytovat.

70
Formální úprava technické zprávy

Typograficky se jedná o průměrně dobrou práci, ve které se vyskytuje několik typografických chyb, jako např. předčasné zalomení některých stránek nebo chybějící popisky u úseků kódu. Práce je psána v anglickém jazyce a až na ojedinělé drobné chyby je jazyková úroveň nadprůměrně dobrá.

79
Realizační výstup

Realizační výstup práce splňuje všechny požadavky zadání a úspěšně demonstruje integraci nástroje Keycloak s OpenID Connect/OAuth2. Vyhodnocení kvality realizačního výstupu a testování jsou pojaty velmi stručně.

72
Využitelnost výsledků

Výsledná práce je prakticky použitelná jako součást báze znalostí, případně návodu jak správně integrovat Keycloak s OpenID Connect/OAuth2.

Rozsah splnění požadavků zadání

Evaluation level: zadání splněno

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

Práce s literaturou

Práce obsahuje celkem 21 literárních pramenů, mezi kterými se vyskytují z větší části dokumentace nebo RFC k jednotlivým technologiím.

80
Topics for thesis defence:
  1. Kapitola 7 popisuje sadu testů pro ověření funkčnosti řešení, které byly zřejmě prováděny manuálně. Přestože to zadání explicitně nevyžaduje, nezvažoval jste automatizaci testovacího procesu pro lepší udržovatelnost demonstračního řešení?
  2. Ověřoval jste, zda navržené řešení neobsahuje vážné bezpečností zranitelnosti? Zvažoval jste např. provedení jednoduchého interního penetračního testování pro odhalení potenciálních bezpečnostních chyb v implementaci?
Points proposed by reviewer: 72

Grade proposed by reviewer: C

Responsibility: Mgr. et Mgr. Hana Odstrčilová