Keycloak: egy jelszó mindenek felett
Aki egy kicsit is foglalkozott az IT-biztonsággal, tisztában van vele, hogy az egyik legnagyobb kockázati tényezőt a felhasználók jelentik. Legyen szó ismeretlen helyről érkezett levelek megnyitásáról, gyanús csatolmányok letöltéséről, ellenőrizetlen linkekre való kattintásról vagy akár másokkal megosztott jelszavakról, a felelőtlen, nem elég biztonságtudatos viselkedés minden szervezetben óriási károkat tud okozni.
Megpróbálhatjuk persze korlátok, szabályok közé szorítani a felhasználókat, de a tapasztalatok azt mutatják, hogy minél inkább megakasztja a kényelmes, normál munkavégzést egy biztonsági intézkedés, annál nagyobb eséllyel igyekeznek azokat a felhasználók kikerülni. Vagyis a biztonságnak lehetőleg észrevétlenül kell belesimulnia a mindennapokba – ennek az alapja pedig a felhasználók biztonságos azonosítása és a hozzáférések megnyugtató kezelése.
A piacon számos IAM (Identity and Access Management) eszköz érhető el erre a célra – ingyenesek és fizetősek egyaránt. Az alábbiakban egy olyan eszközt, a Keycloakot mutatunk be, amelyet a DSS is több megoldásában használ – a leírásból az is kiderül, hogy miért.
Keycloak – hol és hogyan működik?
A Keycloak egy nyílt forráskódú eszköz, ami az Apache License 2.0-n keresztül érhető el, a munka oroszlánrészét pedig a Red Hat végzi (de természetesen bárki közreműködhet), így biztosak lehetünk abban, hogy nem hiányoznak belőle a vállalati használatra szánt funkciók sem.
Három különféle protokollt támogat, az OpenID Connectet, az OAuth 2.0-át és a SAML 2.0-t – a támogatott platformok listája attól függ, melyik protokoll használata mellett döntünk.
Használható a Keycloak önálló IAM-eszközként, amelyben mi magunk hozzuk létre a felhasználói adatbázist, azon belül pedig szabadon definiálhatunk szerepeket és csoportokat. De nem jön zavarba akkor sem, ha már meglévő adatbázisokhoz, rendszerekhez kell kapcsolódnia. Alapból támogatja a két legelterjedtebb változatot, az LDAP-t és az Active Directory-t, de a Keycloak User Storage API-val bármilyen adatbázishoz készíthetünk egyedi kiterjesztéseket. Ezen felül használhatunk közösségi hálózati azonosítókat (a Google, a Twitter, a Facebook és a Stack Overflow támogatása beépített), de a Keycloak proxyként is működhet a felhasználóink és egy külső azonosító szolgáltató között. Természetesen támogatja a Keycloak a Single Sign-On-t és a Single Sign-Out-ot is, és megvalósítható benne az egyre fontosabbá váló kétfaktoros azonosítás is.
Keycloak disztribúciók
Jelenleg három fő disztribúciós formában érhető el a Keycloak.
- Az első a standalone szerver: a letölthető állományban minden szükséges elem megtalálható. Két verziója van ennek a disztribúciónak: az egyik mögött WildFly, a másik mögött Quarkus szerver áll.
- Hozzáférhető a Keycloak konténerizált formában, docker image-ként a Dockerhez, a Podmanhoz, a Kuberneteshez és az Openshifthez.
- Az utóbbi kettőhöz Operator SDK-ra alapozott operátorként is elérhető.
Ezek között mindenki megtalálhatja a kedvére valót – a docker image például kiváló szolgálatot tehet fejlesztési és tesztelési platformként. Felhúzzuk a teszt Keycloak szervert, végrehajtjuk a módosításokat, leteszteljük, majd újraindítjuk a docker image-et – a változások törlődnek és egy tiszta környezettel vághatunk bele az újabb tesztekbe.
Keycloak a frontenden
Nem csak a háttérben, hanem a frontenden is számos lehetőséget kínál a Keycloak. Akár saját célra fejlesztesz, akár egy ügyfélnek, a felhasználók valószínűleg nagyra értékelik majd, hogy az előttük megjelenő oldalak teljesen testre szabhatóak. Ezek az oldalak .ftl formátumúak, így használhatsz HTML-t vagy CSS-t is arra, hogy a bejelentkezési oldalak kinézete megfeleljen az alkalmazásnak vagy a vállalati stílusnak. Egyes JavaScriptek is elhelyezhetők az oldalban, így a lehetőségek tényleg határtalanok.
Szóval miért is érdemes a Keycloakot használni…
…és miért szeretjük mi is annyira, hogy ezt építjük be Ipar 4.0 megoldásainkba?
- Először is ingyenes – a hozzá hasonló tudású eszközök általában fizetősek.
- Három különféle autentikációs protokollt támogat, így a különféle biztonsági igényű alkalmazásainkhoz elég egyetlen eszközt használni, és minden alkalmazáshoz azt a protokollt választhatjuk, amelyik a leginkább megfelel az elvárásoknak.
- Mivel a Red Hat áll mögötte, biztosak lehetünk abban, hogy jól megtervezett és megírt rendszer, a közösségi támogatás révén pedig szinte biztosan választ kaphatunk kérdéseinkre, megoldást találhatunk problémáinkra. (Ugyanakkor arról se feledkezzünk meg, hogy garantált SLA-t senkitől nem várhatunk.)
- Nagy szabadságfokot ad saját megoldásod kialakításához, ugyanakkor könnyen integrálható meglévő LDAP vagy AD alapú rendszerekkel, illetve a közösségi hálózatokra épülő azonosítással.
- Webes GUI-ja révén pedig a konfigurációs módosítások is pofonegyszerűen elvégezetőek, legyen szó felhasználókról, szerepekről, jogosultságokról.
Összefoglalva, ha még mindig nem ismered a Keycloakot, itt az ideje, hogy közelebbről is megnézd.