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
Information about assignment

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

Work with literature

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

Activity during solution, consultations, communication

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.

Activity during completion

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.

Publication activity, awards
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
The difficulty of the assignment

Evaluation level: moderately difficult assignment

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

Presentation level of the technical report

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
Formal preparation of a technical report

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
Realisation output

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
Usability of results

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.

The extent to which the requirements of the assignment have been met

Evaluation level: assignment fulfilled

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

Extent of the technical report

Evaluation level: is within the usual extent

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

Work with literature

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á