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
obhájeno (práce byla úspěšně obhájena)
znamkaEznamka
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.
- 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í?
- 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?
Informační technologie (BIT)
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)
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íceZnámka navržená vedoucím: E
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ě:
- 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í?
- 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íceZnámka navržená oponentem: C
Odpovědnost: Mgr. et Mgr. Hana Odstrčilová