Single Sign-on

2014. február 23.

by tmichel

Már többször ígértem, hogy írok a Single Sign-on-ról (SSO). Az utóbbi években ez a technológia határozta meg a kör egyik fő irányvonalát. Valójában nem csak a kör életében volt ez meghatározó, hanem (kis túlzással) a schönherzes közéletben is.

Ebben a bejegyzésben megpróbálom felvázolni, hogy mi is az az SSO pontosan, hol találkozhattatok vele, milyen problémákba ütköztünk és mire számíthattok a következő félévekben.

Mi az az SSO?

A SSO inkább egy koncepció, mint egy konkrét technológia. Röviden a lényege annyi lenne, hogy a felhasználókezelés egy központi helyen van megvalósítva. Ez a felhasználók számára azt jelenti, hogy egyetlen felhasználónév-jelszó párost kell megjegyezniük, valamint ha valahol bejelentkeztek, akkor mindenhol bejelentkeztek egyszerre (erre utal a név is). A látszólag független rendszerek felismerik, hogy a felhasználó már belépett egyszer és rögtön hozzáférést engednek a védett tartalomhoz.

Talán a legismertebb SSO rendszer éppen a Google-nél található. Ha megfigyeljük, akkor a Gmail, a Drive, a Youtube és még sok másik Google szolgáltatás is jól elkülönül, de ugyanazzal a felhasználónévvel és jelszóval tudunk belépni mindenhol. Sőt, belépni is csak egyszer kell és ezt bármelyik szolgáltatásban megtehetjük.

A VIR lelke az SSO

A VIR központi része az SSO. Jelenleg a legtöbb körös holnapra a már jól ismert kék bejelentkező felületen tudtok belépni.

Az eredeti VIR koncepció központi gondolata a lazán összekapcsolt rendszerek voltak. Ez a laza kapcsolat a felhasználókezelésben öltött testet: minden társrendszer ugyanazokkal a felhasználókkal dolgozik, amit egyetlen helyen tartunk nyilván (ez lenne a PÉK).

Ezzel mindenki életét megkönnyítettük. A felhasználókét azért, mert egyetlen felhasználói fiókkal hozzáférhetnek az összes Schönherzhez köthető szolgáltatáshoz. Beléphetnek a PÉK-be vagy a wikire, de akár a saját körük holnapjára is. Az üzemeltetők dolgát pedig azért, mert a felhasználókezelés és tárolás terhét veszi le a vállukról.

A marketing szövegünk valahogy így nézhetett volna ki:

Egy új projektet szeretnél útjára indítani a Schönherzen belül? Írd meg, szólj nekünk és a felhasználókat mi adjuk. Az új alkalmazás rögtön átugorhatja a felhasználók regisztrációra csábítását, mert a karon a VIR-ben mindenki (értsd mindenki) benne van.

OpenAM

Az SSO funkcionalitást használni nagyon kényelmes, de a megvalósítása nem triviális. Mi erre egy kész szoftvert, az OpenAM-et (korábbi nevén OpenSSO) használtuk, amit a Sun, majd a ForgeRock fejlesztett. Ez a megoldás felelt a felhasználók azonosításáért, a felhasználó profiljának kiolvasásáért az adatbázisból és a munkamenetek kezeléséért. Emellett természetesen számtalan olyan funkciója volt, amit (sajnos) mi nem használtunk, érdemes utánaolvasni.

Mivel a körös oldalak shared hosting megoldású szervereken vannak (wadon, lothlorien), ezért - és mert az SSO apache agenttel sem voltak jó tapasztalatok - telepítésre került egy Shibboleth Service Provider. Ennek segítségével a társrendszerek (körök oldalai) egyszerűbben felvehetőek voltak a föderációba és tudták használni az SSO nyújtotta előnyöket. Szerver üzemeltetés szempontjából sajnos továbbra sem volt tökéletes a megoldás: az Apache webszerverbe épülő Shibboleth modul gyakran okozott random leállást (és ezzel nem kis fejfájást a KSZK-s kollégáknak).

Problémák

Ha mindez eddig túl szépnek tűnt, akkor nem jársz rossz nyomon. Az OpenAM és Shibboleth bonyolult technológiák, amiket üzemeltetni nem éppen egyszerű feladat. Személy szerint én viszonylagos biztonságból figyelem az eseményeket, de egy-egy Shibboleth konfiguráció mindig véres harcot jelent.

Egy új rendszer integrálása mindig kihívásokat tartogat. Nehéz általánosítani, könnyű előre nem látott problémákba futni, de ami a Kir-Dev szempontjából a legrosszabb, hogy a részünkről is aktív és néha időigényes elfoglaltság egy új rendszert behozni a VIR SSO alá.

A technológiai problémákon túl megint beleütközünk az állandósult emberi erőforrás hiányába. A körön belül az OpenAM nem örvend túlzott népszerűségnek - konkrétan senkit sem érdekel. Hónapokon belül ott fogunk tartani, hogy az utolsó körtag, aki még értett hozzá, elérhetetlen messzeségbe kerül. Ha pedig senki nem ért hozzá, akkor értelemszerűen üzemeltetni sem fogjuk tudni. Ezzel egy időben a BME címtárral való integráció is egyre sürgetőbbé válik. OpenAM-en keresztül valószínűleg megoldható lenne, de érdeklődés hiányában ez sajnos nem opció.

Mi lesz ezután?

A SSO végső célja az lenne, hogy az összes schönherzes rendszert egy tető alá hozza. Ez a mai napig még nem sikerült, mert bizonyos (KSZK által üzemeltetett) szolgáltatásokat nem érhetsz el a VIR fiókoddal. A házon belüli teljesen egységes autentikáció gondolata már régóta foglalkoztat minket, és ötletelések is fel-felbukkannak, de eddig még nem sikerült érdemben közelebb hoznunk az SchAcc-ot a VIR fiókhoz (vagy éppen fordítva).

A KSZK berkein belül már nagy erőkkel dolgoznak az auth.sch-n, ami koncepciójában hasonló megoldás lesz, mint a jelenlegi VIR SSO, csak a mögötte lévő technológia teljesen más.

A jövőben azt tervezzük, hogy a jelenlegi SSO megoldásunkat nyugdíjazzuk és mi is felsorakozunk az auth.sch mögé. Ebben az esetben a határidők adottak, mert a következő őszi félévben a gólyáknak már az új, auth.sch-t használó rendszeren keresztül kellene regisztrálni a PÉK-be.

A jelenlegi SSO is megmarad még egy ideig, amíg mindenkinek sikerül áttérnie az új auth.sch-ra, utána pedig leállítjuk a rendszert és könnyes búcsút veszünk egy korszaktól.

A cikk szakmai felülvizsgálatáért és az OpenAM-es részekért köszönet balonak és aldarisnak!