bakalářská práce

Jednotné přihlašování pomocí OpenID Connect a Keycloak

Text práce 1.77 MB

Autor práce: Bc. Maksym Koval

Ak. rok: 2023/2024

Vedoucí: Mgr. Kamil Malinka, Ph.D.

Oponent: Ing. Jiří Pavela

Abstrakt:

Cílem této práce je prozkoumat principy protokolů OAuth 2.0 a OpenID Connect a vysvětlit, jak by tyto protokoly měly být implementovány v architektuře mikroslužeb. Jako demonstrační aplikace byly navrhnuty dva webové klienty Angular a dva servery Spring Boot. Práce také vysvětluje připojení Keycloak jako poskytovatele identit pro výše uvedené aplikace. Výsledkem je centralizované autentizace všech aplikací a implementace mechanismu jednotného přihlašování v cloudovém prostředí.

Klíčová slova:

OAuth 1.0, OAuth 2.0, OpenID Connect, Keycloak, Jednotné přihlašování, Angular, Spring Boot, Autorizace, Autentifikace, Identita

Termín obhajoby

12.06.2024

Výsledek obhajoby

obhájeno (práce byla úspěšně obhájena)

znamkaEznamka

Klasifikace

E

Průběh obhajoby

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.

Otázky k obhajobě

  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?

Jazyk práce

angličtina

Fakulta

Ústav

Studijní program

Informační technologie (BIT)

Složení komise

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)

Posudek vedoucího
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".

Kritérium hodnocení Slovní hodnocení
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á

Výsledný počet bodů navržený vedoucím: 50
Zobrazit více

Známka navržená vedoucím: E

Posudek oponenta
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.

Kritérium hodnocení Slovní hodnocení Body
Náročnost zadání

Stupeň hodnocení: 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í

Stupeň hodnocení: zadání splněno

Rozsah technické zprávy

Stupeň hodnocení: 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
Otázky k obhajobě:
  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?
Výsledný počet bodů navržený oponentem: 72
Zobrazit více

Známka navržená oponentem: C

Odpovědnost: Mgr. et Mgr. Hana Odstrčilová