Bachelor's Thesis

FedCM API Integration into Keycloak

Final Thesis 1.61 MB

Author of thesis: Bc. Šimon Vacek

Acad. year: 2023/2024

Supervisor: doc. Ing. Radek Burget, Ph.D.

Reviewer: RNDr. Marek Rychlý, Ph.D.

Abstract:

Because of security concerns, trustworthiness, and ongoing privacy-oriented changes, third-party cookies are to be phased out in web browsers. These play a key role in federating user identities in single sign-on applications, so a unified solution with a focus on preserving privacy is being developed. The Federated Credential Management API is the proposed solution; at this time, it is not yet standardized. This thesis deals with implementing the specification of this API to a Cloud Native Computing Foundation incubating project Keycloak. It is an open source single-sign-on application with Red Hat as the main contributor. The OpenID Connect and OAuth 2.0 are discussed together with how they work together with FedCM and all of its extensions. The result is implemented as a service provider interface extension to Keycloak.

Keywords:

Keycloak, single sign-on, third-party cookies, FedCM, federated identity, user identity, social login

Date of defence

10.06.2024

Result of the defence

Defended (thesis was successfully defended)

znamkaBznamka

Grading

B

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 B.

Topics for thesis defence

  1. Jaký je stav implementace FedCM v ostatních IAM systémech mimo Keycloak? Pokud takové existují, porovnejte je stručně s Vašim řešením.

Language of thesis

English

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

doc. Dr. Ing. Dušan Kolář (předseda)
RNDr. Marek Rychlý, Ph.D. (člen)
doc. Dr. Ing. Otto Fučík (člen)
Ing. František Grézl, Ph.D. (člen)
Ing. Filip Orság, Ph.D. (člen)

Supervisor’s report
doc. Ing. Radek Burget, Ph.D.

Pan Vacek začal na svojí bakalářské práci pracovat poněkud se zpožděním, v letním semestru se však řešení věnoval zodpovědně a práci dovedl podle mého názoru k velmi pěknému výsledku, který může mít praktické uplatnění. Jeho práci proto celkově hodnotím jako mírně nadprůměrnou.

Evaluation criteria Verbal classification
Informace k zadání

Cílem zadání bylo nastudovat detaily aplikačního rozhraní Federated Credential Management (FedCM API) a implementovat jeho podporu do existujícího nástroje KeyCloak. Jedná se o zadání firmy RedHat. Vzhledem k tomu, že uvedená technologie je aktuálně ve vývoji a cílový softwarový nástroj je poměrně složitý, považuji zejména studijní část za mírně náročnější. Zadání považuji za splněné.

Práce s literaturou

Student aktivně a samostatně vyhledával a využíval relevantní informační zdroje.

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

V zimním semestru nebyl student příliš aktivní, nicméně v letním semestru se řešení bakalářské práce věnoval soustavně a svědomitě. Své řešení opakovaně konzultoval, na konzultace byl velmi dobře připraven.

Aktivita při dokončování

Práce byla dokončena ve značném předstihu a její definitivní obsah byl průběžně konzultován. Mé připomínky zejména k technické zprávě student řádně zapracoval.

Publikační činnost, ocenění
Points proposed by supervisor: 86

Grade proposed by supervisor: B

Reviewer’s report
RNDr. Marek Rychlý, Ph.D.

Výsledkem bakalářské práce je poměrně kvalitní technická zpráva a velmi dobré programové řešení. Navrhuji hodnotit práci na horní hranici stupně velmi dobře (B).

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

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

Jedná se o průměrně obtížné zadání.

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

Technická zpráva má velmi dobrou prezentační úroveň. Jednotlivé kapitoly nejprve postupně a přehledně představují důležité koncepty (OIDC a FedCM) a technologie (Keycloak) a později také návrh, implementaci a ověření vlastního řešení. Oceňuji časté a přehledné diagramy sekvence popisující interakce zúčastněných stran během různých provedení procesu autentizace. Kapitola 5 s popisem návrhu řešení je poměrně krátká (5 stran), avšak vzhledem k povaze výsledného software a v kontextu souvisejícího prostředí a procesů (kap. 3 a 4) je plně dostačující.

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

Z hlediska formální úpravy je technická zpráva s drobnými nedostatky, které se týkají především typografické stránky (např. chybné symboly pro uvozovky, absence velkých písmen u některý zkratek a názvů atp.). Text je psán anglicky a je po gramatické i stylistické stránce na velmi dobré úrovni.

85
Realizační výstup

Realizačním výstupem je modul implementující FedCM autentizaci do systému Keycloak a jednoduchá ukázková aplikace. Modul je dobře navržen a návrh i následný vývoj jsou zdokumentovány v technické zprávě. Přestože samotný zdrojový kód není rozsáhlý (asi 1500 řádků), oceňuji jeho precizní provedení a s tím související kvalitní návrh, náročnou integraci a konfiguraci (Keycloak, Docker). Kód je také velmi dobře strukturován a komentován.

95
Využitelnost výsledků

Výsledky jsou velmi dobře použitelné v praxi, FedCM v Keycloak předtím nebyl podporován a jeho implementace má tedy prokazatelný přínos.

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

Evaluation level: zadání splněno

Zadání je splněno bez výhrad.

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

Rozsahem je technická zpráva v obvyklém rozmezí, od úvodu po závěr má 39 vysázených stran (celkem přibližně 65 normostran). Jednotlivé kapitoly jsou přiměřeného rozsahu a svým obsahem informačně bohaté a nezbytné pro pochopení problematiky a vlastního řešení.

Práce s literaturou

Seznam literatury obsahuje 20 položek, z nichž je většina online zdroji k použitým technologiím a specifikacím, avšak je použita i jedna kniha. Absence více kvalitních publikací je vzhledem k aktuálnosti tématu pochopitelná. Jednotlivé zdroje jsou uvedeny korektně a v textu je dobře patrný způsob a rozsah jejich použití.

75
Topics for thesis defence:
  1. Jaký je stav implementace FedCM v ostatních IAM systémech mimo Keycloak? Pokud takové existují, porovnejte je stručně s Vašim řešením.
Points proposed by reviewer: 89

Grade proposed by reviewer: B

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