Sme súčasťou BIQ Group
Produkčné nasadenie Keycloaku

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.


Riešite Keycloak alebo firemné SSO?

Pomôžeme vám s návrhom, nasadením aj prevádzkou bezpečného prihlasovania.

Riešite Keycloak alebo firemné SSO?

Sme tu pre vás

Jozef Kosa

Jozef Kosa

Obchodný manažér+421 918 757 438jozef.kosa@bootiq.sk
Ľubomír Starek

Ľubomír Starek

Stream leader+421 918 804 309lubomir.starek@bootiq.sk
Anna Chlebcová

Anna Chlebcová

HR manažérka+421 904 678 332anna.chlebcova@bootiq.sk

Nevyhnutné cookies zabezpečujú fungovanie webu. S vaším súhlasom nám analytické cookies pomôžu web zlepšovať a marketingové prispôsobiť reklamu.