diff --git a/app/articles/2024/07/27/megujul-az-authsch.md b/app/articles/2024/07/27/megujul-az-authsch.md new file mode 100644 index 0000000000000000000000000000000000000000..6bd881fca12f26326bf969c64b5bae43a35437de --- /dev/null +++ b/app/articles/2024/07/27/megujul-az-authsch.md @@ -0,0 +1,122 @@ +--- +slug: megujul-az-authsch +title: Megújul az AuthSCH +authors: thomasklein +tags: [Hírek, AuthSCH, Blog] +--- + +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. + +<!--truncate--> + +## 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: +- [OAuth a Schönherzben - KSZK](https://kszk.bme.hu/articles/sso-rendszerek) +- [Mi az az SSO - Kir-Dev](https://kir-dev.hu/post/2014-02-23-sso) +- [auth.sch:az új irány - Kir-Dev](https://kir-dev.hu/post/2014-03-16-auth-sch) + +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](https://hu.wikipedia.org/wiki/Th%C3%A9szeusz_haj%C3%B3ja), +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! + + + +[AuthSCH Gitlab wiki]: https://git.sch.bme.hu/kszk/authsch/-/wikis/home