
Produkčné nasadenie Keycloaku
Produkčné nasadenie Keycloaku: na čo myslieť, než prejdete do ostrej prevádzky
Keycloak v testovacom prostredí rozbehnete za popoludnie. Produkčné nasadenie, ktoré vydrží výpadok databázy, prežije aktualizáciu bez prerušenia prevádzky a upozorní vás na bezpečnostný incident skôr, než si ho všimnú používatelia – to je iná disciplína.
Tento článok nepokrýva každý konfiguračný parameter. Pokrýva rozhodnutia, ktoré ovplyvnia, ako sa vám bude Keycloak spravovať o rok, o dva, o päť.
Prečo na produkčnom nasadení záleží viac než pri iných systémoch
Keycloak je identitná brána. Ak nefunguje, používatelia sa nemôžu prihlásiť do žiadnej aplikácie, ktorá sa naň spolieha. Výpadok Keycloaku neznamená, že jedna funkcia nefunguje – znamená, že nefunguje nič.
To ho radí medzi kritickú infraštruktúru – podobne ako firemný e-mail alebo VPN. A kritická infraštruktúra vyžaduje iný prístup k nasadeniu než interný nástroj, ktorý si firma môže dovoliť na hodinu vypnúť.
Dobrá správa: Keycloak je na túto rolu navrhnutý. Zvláda vysokú dostupnosť, bezpečnostný monitoring aj aktualizácie bez prerušenia prevádzky. Ale len ak je správne nakonfigurovaný od začiatku.
Dostupnosť: čo sa stane, keď jeden server spadne
Základná inštalácia Keycloaku beží na jednom serveri. Ak tento server spadne – výpadok hardvéru, reštart pri aktualizácii alebo preťaženie – používatelia sa neprihlásia. Na testovanie to neprekáža. Na produkciu to nestačí.
Produkčné nasadenie Keycloaku typicky beží na minimálne dvoch inštanciách, ktoré sú navzájom synchronizované. Ak jedna prestane reagovať, druhá prevezme prevádzku automaticky – používatelia si nič nevšimnú.
Kubernetes, teda kontajnerová platforma, na ktorej bežia moderné aplikácie, toto prepínanie zvláda bez ľudského zásahu.
Synchronizácia medzi inštanciami je kľúčová: ak sa používateľ prihlási cez prvú inštanciu a jeho ďalšiu požiadavku spracuje druhá, musí vedieť, že tento používateľ je prihlásený.
Keycloak túto synchronizáciu rieši automaticky cez distribuovanú cache Infinispan, ktorá medzi inštanciami synchronizuje dáta po sieti – ale iba ak sú inštancie správne prepojené.
Nesprávne nakonfigurovaný klaster sa tvári ako funkčný, kým si používateľ pri prepnutí na druhú inštanciu nevšimne, že je zrazu odhlásený.
Vysoká dostupnosť nie je len otázka „mám dva servery“. Je to otázka, či tieto servery správne spolupracujú.
Overte to pred spustením do produkcie – nie po ňom.
Bezpečnosť: čo nastaviť ešte pred prvým prihlásením
Keycloak má rozumné predvolené bezpečnostné nastavenie, ale na produkciu ho nestačí nechať tak, ako je po inštalácii. Tri veci by ste mali nastaviť ešte pred prvým ostrým prihlásením.
Ochrana proti útokom hrubou silou
Keycloak vie automaticky zablokovať účet po opakovaných neúspešných pokusoch o prihlásenie. V predvolenom nastavení je táto funkcia vypnutá.
Zapnite ju a nastavte primerané limity – napríklad zablokovanie na 15 minút po piatich neúspešných pokusoch.
Útočník, ktorý skúša heslá automatizovane, narazí na múr. Používateľ, ktorý zabudol heslo, sa o chvíľu skúsi prihlásiť znova.
Dĺžka platnosti tokenov a SSO session
Keycloak rozlišuje dve nezávislé veci: access token a SSO session.
Access token má krátku platnosť, predvolená hodnota je typicky 5 minút. Je to to, čo aplikácia predkladá API.
SSO session určuje, ako dlho trvá prihlásenie v Keycloaku. Predvolené maximum je typicky 10 hodín.
Oboje nastavujete zvlášť. Pre SSO session je osem hodín zodpovedajúcich dĺžke pracovného dňa rozumný kompromis. Access token nechajte krátky – odcudzený token potom platí len minúty, nie hodiny.
Viacfaktorové overenie (MFA)
Keycloak podporuje overovanie cez autentifikačnú aplikáciu, napríklad Google Authenticator alebo Authy, hardvérové bezpečnostné kľúče, napríklad YubiKey, aj modernú biometriu, napríklad Windows Hello alebo Touch ID.
MFA výrazne znižuje riziko zneužitia odcudzených prihlasovacích údajov. Keycloak ho umožňuje vyžadovať selektívne – napríklad len na prístup k citlivým aplikáciám alebo pre používateľov mimo firemnej siete.
Aktualizácie: ako udržať Keycloak aktuálny bez výpadkov
Nové verzie Keycloaku vychádzajú približne každé tri mesiace.
Od verzie 26, vydanej v októbri 2024, Keycloak rozlišuje LTS vydania, teda Long-Term Support, s podporou 18 mesiacov, a štandardné vydania s podporou iba 3 mesiace.
Bezpečnostné záplaty sa spätne prenášajú len do LTS vetvy – na produkciu preto odporúčame stavať na LTS vydaní. Staršie verzie mimo LTS časom prestanú dostávať opravy zraniteľností.
Aktualizácia Keycloaku v produkcii pritom nemusí znamenať výpadok. Pri správne nakonfigurovanom nasadení sa servery aktualizujú postupne: prvá inštancia sa aktualizuje a reštartuje, druhá medzitým obsluhuje prevádzku. Potom sa aktualizuje druhá, zatiaľ čo prvá už beží v novej verzii.
Celý proces prebehne bez prerušenia – používatelia si nič nevšimnú.
Predpokladom je, že aktualizácia neprináša zmeny narúšajúce spätnú kompatibilitu, ktoré by spôsobili nekompatibilitu medzi starou a novou verziou.
Keycloak k novým verziám publikuje migračnú príručku, kde takéto zmeny opisuje. Prečítať si ju pred každou aktualizáciou nie je voliteľné – je to povinný krok procesu.
Osvedčený postup
Pred každou aktualizáciou produkcie aktualizujte najprv stagingové prostredie, ktoré by malo byť podľa možností identické s produkciou.
Otestujte základné scenáre – prihlásenie, odhlásenie a integrácie kľúčových aplikácií.
Ak staging prešiel, produkcia by mala prejsť tiež.
Monitoring: vedieť o probléme skôr, než ho nahlásia používatelia
Poskytovateľ identity, o ktorom sa nič nedozviete, kým ho nezačnú hlásiť používatelia, je poskytovateľ identity, ktorý vám spôsobí problémy.
Keycloak sprístupňuje metriky v štandardnom formáte, ktorý vedia spracovať bežné monitorovacie nástroje ako Prometheus a Grafana.
Čo sledovať
Počet neúspešných prihlásení
Náhly nárast môže signalizovať útok hrubou silou alebo výpadok integrácie s Active Directory. O oboch chcete vedieť čo najskôr.
Rýchlosť spracovania prihlásenia
Keycloak by mal prihlásenie spracovať v ráde desatín sekundy. Ak priemerný čas začne narastať, je to prvý príznak problému – preťažená databáza, nesprávna konfigurácia cache alebo sieťový problém.
Stav databázového pripojenia
Keycloak ukladá konfiguráciu, používateľov a dáta relácií do databázy. Ak databáza prestane reagovať, Keycloak prestane fungovať.
Monitorujte počet aktívnych pripojení a čas odozvy databázy.
Dostupnosť jednotlivých inštancií
V klastri chcete okamžite vedieť, ak jedna z inštancií prestane reagovať.
Hotové dashboardy pre Grafanu sú dostupné ako open-source – nemusíte ich stavať od nuly. Nastavenie monitoringu je práca na jeden deň, ktorá vám ušetrí hodiny diagnostiky pri prvom incidente.
Zálohy a obnova: čo robiť, keď sa niečo pokazí
Keycloak ukladá všetku konfiguráciu a dáta používateľov do databázy. Databáza je primárna záloha – bez nej nemožno Keycloak obnoviť.
Čo by mali pokrývať zálohy
Databáza
Zálohujte celú databázu pravidelne, minimálne raz denne. Zálohu ukladajte mimo produkčnej infraštruktúry – ak prídete o server aj zálohu zároveň, nemáte nič.
Export konfigurácie
Keycloak umožňuje exportovať nastavenie celého realmu ako JSON súbor – napríklad prihlasovacie toky, nastavenia aplikácií, roly a skupiny.
Tento export je rýchly spôsob, ako obnoviť konfiguráciu do novej inštancie alebo preniesť nastavenia medzi prostrediami.
Odporúčame ho robiť pred každou väčšou zmenou konfigurácie.
Pozor: export z administrátorskej konzoly neobsahuje používateľské heslá ani prihlasovacie údaje. Na úplnú obnovu vrátane používateľov je potrebná databázová záloha alebo CLI export.
Zálohy bez pravidelného testovania obnovy sú len predpoklad. Raz za štvrťrok si overte, že z dostupnej zálohy dokážete Keycloak skutočne obnoviť.
Zistiť pri incidente, že je záloha poškodená alebo neúplná, je zlá chvíľa na takéto zistenie.
Kubernetes: štandardná platforma pre moderné nasadenie
Väčšina firiem, ktoré Keycloak nasadzujú dnes, ho prevádzkuje na Kubernetes – kontajnerovej platforme, ktorá automatizuje nasadzovanie, škálovanie a obnovu aplikácií.
Kubernetes zvláda reštartovať spadnutú inštanciu Keycloaku bez ľudského zásahu, rozložiť prevádzku medzi viac inštancií a vykonať aktualizáciu bez výpadku.
Na nasadenie na Kubernetes máte dve základné cesty: Helm chart, teda konfiguračnú šablónu, ktorú si prispôsobíte, alebo Keycloak Operator, komponent, ktorý automatizuje správu životného cyklu Keycloaku vrátane upgradov.
Pre nové inštalácie odporúčame Operator – je to smer, do ktorého komunita Keycloaku investuje, a prinesie vám viac automatizácie za menej ručnej práce.
Ak Kubernetes nespravujete sami a Keycloak by ste chceli prevádzkovať bez starostí o infraštruktúru, existuje aj spravovaný variant.
Chcete Keycloak bez starostí o prevádzku?
Produkčné nasadenie Keycloaku je projekt, ktorý vyžaduje skúsenosti so správou identít, Kubernetes a bezpečnostnou konfiguráciou.
Výsledok – stabilná, bezpečne nakonfigurovaná identitná platforma – sa oplatí. Ale nie každý tím má kapacitu alebo chuť zaoberať sa tým sám.
BOOTIQ prevádzkuje Keycloak ako spravovanú službu. Nasadíme ho, nakonfigurujeme pre vaše prostredie a postaráme sa o prevádzku: pravidelné aktualizácie, monitoring, zálohy a reakcie na incidenty.
Váš tím sa môže sústrediť na to, čo vie najlepšie.



