Ugrás a lényegre

Megújul az AuthSCH

· 4 perc olvasmány

Az AuthSCH szolgáltatásunk idén nyáron ünnepli indulásának tizedik évfordulóját! Az ünnepre készülve úgy döntöttünk, hogy ráfér egy kis tatarozás, így hosszú idő után most megújul és új funkcionalitással bővül az AuthSCH.

Visszatekintés

2013 Novemberében, egy hideg vasárnap délelőttön Janega Zoltán veterán öregtagunk (akkor még csak idősödő tagunk) nekigyűrkőzött a nagy feladatnak, hogy egyesítse az akkor elérhető három Címtár rendszert: a VIR SSO-t, a BME SSO-t, és a SCHACC-ot.

Az éppen akkor megjelenő Ubuntu kódneve a Saucy Salamander volt, a mozikban a héten vetítik a második Hunger Games filmet. A legújabb Linux kernel verziószáma 3.12, és akik nem moziba készülnek, azok épp most kezdtek el játszani a frissen megjelent Grand Theft Auto V-el. Zolij az AuthSCH-t az elérhető legfrissebb, 5.5-ös PHP verzióval készíti; fél éves újdonság a Docker és a React, a Kubernetes pedig valami furcsa, görögnek hangzó szó amiről nem igazán tudja még senki sem, hogy micsoda.

Ahogy aztán haladt a fejlesztés, a Kir-Dev és a KSZK koordinált blogposztokkal hírdették:

Azóta az AuthSCH éveken át naponta szolgálta a kollégisták és közélők igényeit. A projekt mintegy 600 commitjából 507 commitot Zolij készített, a maradék néhány commit 7 kontribútor között oszlik el. A projekt Zolij veteránná válása után érezhetően megtorpant, majd 2023 decemberi eseményei miatt életében először hosszabb időre megpihent.

A jelen újításai

2024 Április elején azzal a kihívással néztünk szembe, hogy a kézműves szerver, amin az AuthSCH addig futott, nincs többé. A szerverrel együtt pedig úgy tűnt odaveszett az üzemeltetési know-how is. Bár a Decembertől Áprilisig tartó időszakot megpróbáltuk a Microsoft Entra nevű termékével átvészelni, világossá vált, hogy nem tudja kiváltani az AuthSCH-t.

Konténerizáció

KSZK-s generációk nőttek fel és végezték el az egyetemet úgy, hogy szentül hitték: Az AuthSCH-t nem lehet konténerizálni ebben a formájában, Kubernetesben történő üzemeltetésről pedig senki még álmodni se mert. Én magam is éveken át éltem ebben a hitben.

A valóság ezzel szemben az, hogy ha nagy a szükség, akkor 1 napnyi munka elég ahhoz, hogy az ember belegyömöszölje az AuthSCH-t és függőségeit 3 konténerbe. További fél nap munka, és az AuthSCH konténerizálva fut, Kubernetesben, CI/CD pipeline-al megtámogatva.

OpenID Connect

Az Entrával töltött negyed év viszont rámutatott az AuthSCH hiányosságaira is. Egyértelművé vált, hogy a projektet újra kell éleszteni, és ezeket a hiányosságokat be kell pótolnunk. Egy Április végi hétvégén aztán feltettem a kérdést: "Vajon mennyi idő lehet beleintegrálni az OpenID Connect szabványt?"

Itt aztán elszabadult a pokol, 5 évnyi PHP omlott a nyakamba. Körülbelül 1 hétnyi munkába került, de az AuthSCH képessé vált OIDC kliensekkel is együttműködni, sőt, implementáltam az OIDC Discovery szabványt is.

Modernizált, mobilbarátabb UI

Az OpenID miatt számtalan alkatrészét kellett frissebbre vagy másra cserélnem. Az UI keretrendszer évek óta nem kapott frissítést, és PHP8-on már nem is futott. Ekkor került eldobásra az előző UI keretrendszer, és ekkor frissítettem Bootstrap 3-ról Bootstrap 5-re.

Bár a design nem változott jelentősen, ha már hozzányúltam, néhány dolgot megváltoztattam vagy mobilbarátabbá tettem.

Új Scope-ok, Claimek és új Userinfo endpoint

Hogy az AuthSCH minél közelebb kerülhessen az OIDC szabványhoz, és hogy egységesebbé, egyértelműbbé tegyük az AuthSCH használatát, új API-t hoztunk létre. Ennek technikai részleteiről az AuthSCH Gitlab wiki oldalán olvashattok.

Backward kompatibilitás

Habár rengeteg minden változott Thészeusz hajóján, az előző 10 évben implementált kliensprogramokkal a kompatibilitás azonban még egy ideig megmarad. Ennek ellenére is kérjük az AuthSCH-t használó alkalmazások fejlesztőit, hogy álljanak át az új API-ra, és használják az újonnan definiált Scope-okat.

A jövőbeli tervek

Természetesen a KSZK-ban nem állunk meg, és további fejlesztéseket tervezünk az AuthSCH-val kapcsolatban. Szeretnénk például, ha az AuthSCH-ban is lenne lehetőség többfaktoros authentikációra, vagy a kliensek megosztott kezelésére. 2026-ban a jelenleg használt PHP frameworkünk támogatása megszűník, így addigra ismét egy nagyobb refaktoron leszünk majd túl.

Ha érdekel, hogyan működik egy ilyen rendszer, esetleg szívesen részt vennél a fejlesztésében is, akkor keress minket és csatlakozz hozzánk!