Keycloak a Active Directory / LDAP: jak propojit firemní účty se SSO


Většina firem, které uvažují o SSO, má jedno společné: už spravují uživatele někde jinde. Nejčastěji v Active Directory – adresáři, přes který zaměstnanci přistupují k počítačům, souborovým serverům a firemní síti.

Dobrá zpráva: Keycloak se na Active Directory nebo LDAP napojí přímo. Uživatele nemusíte přepisovat ručně ani udržovat dvě oddělené databáze účtů. Keycloak si identitu uživatele načte z AD – a o zbytek se postará sám.


Co to v praxi znamená

Když propojíte Keycloak s Active Directory, uživatelé se do všech SSO aplikací přihlašují stejnými údaji, které znají z Windows přihlášení. Žádná nová hesla, žádná synchronizace v excelu, žádné „zapomněl jsem heslo do té nové aplikace“.

Z pohledu IT oddělení se nic zásadně nemění: uživatele stále zakládáte, měníte a odebíráte v Active Directory, jak jste zvyklí. Keycloak tyto změny automaticky odráží.

Odejde zaměstnanec? Deaktivujete ho v AD a ztratí přístup ke všem SSO aplikacím – s krátkými access tokeny prakticky okamžitě, bez toho, abyste ho museli mazat v každé aplikaci zvlášť.

Toto je jedna z největších praktických výhod SSO ve spojení s Active Directory: offboarding se stane jednorázovou operací, ne kontrolním seznamem.


LDAP a Active Directory: jeden mechanismus, různá prostředí

Active Directory je adresářová služba od Microsoftu – systém, který uchovává informace o uživatelích, počítačích a skupinách ve firmě.

LDAP je protokol, přes který se s adresářovými službami komunikuje. Active Directory LDAP protokol podporuje.

Z pohledu Keycloaku je to totéž: propojení funguje stejně pro Active Directory i pro jiné LDAP adresáře, jako jsou OpenLDAP nebo FreeIPA. Liší se jen detaily nastavení, ne základní princip.

Keycloak ve výchozím nastavení uživatele z AD importuje do své lokální databáze – profil uživatele se vytvoří při prvním přihlášení, takzvaným lazy importem.

Keycloak hesla do svých databází neukládá. Při přihlášení je přeposílá přímo do AD přes šifrované LDAP spojení.

Import lze vypnout. V tom případě Keycloak ověřuje každý požadavek přímo proti AD.

To je dobrá zpráva z hlediska bezpečnosti: nepřidáváte další místo, kde by citlivá data mohla uniknout.


Jak propojení vypadá krok za krokem

Nastavení se provádí v administrátorském rozhraní Keycloaku a nevyžaduje žádné změny na straně Active Directory – kromě jedné věci.

Servisní účet v AD

Keycloak potřebuje v Active Directory účet, přes který se bude dotazovat. Jde o technický účet – uživatelé ho nikdy neuvidí ani s ním nebudou pracovat.

Stačí mu oprávnění ke čtení adresáře: vidět uživatele a skupiny, nic víc.

Heslo tohoto účtu by nemělo expirovat, jinak vám v neočekávaný moment přestane fungovat přihlašování.


Konfigurace v Keycloaku

V nastavení Keycloaku nadefinujete, kde AD hledat: adresu serveru, šifrované připojení, účet pro přihlášení a místo v adresářovém stromě, kde jsou uživatelé a skupiny.

Keycloak pak ověří, že se na AD dokáže připojit, a ověří, že testovacího uživatele v adresáři najde. Pokud obojí projde zeleně, propojení funguje.

Šifrované připojení je povinné. Nešifrovaná komunikace s AD přenáší hesla po síti v čitelné podobě – v produkčním prostředí je to nepřijatelné riziko.


Mapování atributů

Active Directory uchovává o každém uživateli řadu informací: přihlašovací jméno, jméno a příjmení, e-mailovou adresu, oddělení, telefonní číslo.

Keycloak si přebere ty atributy, které potřebuje – standardně přihlašovací jméno, celé jméno a e-mail.

Pokud vaše aplikace potřebují víc, například oddělení pro přidělení přístupu nebo interní ID zaměstnance, nastavíte to jako rozšíření.


Skupiny a role

Skupiny z Active Directory lze namapovat do Keycloaku, včetně případné vnořené hierarchie. Vyžaduje to ale explicitní konfiguraci Group LDAP Mapperu.

To je praktické: pokud v AD máte skupiny jako „Finance“, „HR“ nebo „IT Admins“, nemusíte přístupová práva v Keycloaku nastavovat od nuly.

Namapujete skupiny na role a přístupová práva v aplikacích se nastaví automaticky.


Synchronizace: jak aktuální jsou data

Při každém přihlášení Keycloak ověří přihlašovací údaje přímo proti AD – účet musí existovat a být aktivní.

Profilová data, jako jméno, e-mail nebo skupiny, se při zapnutém importu čtou z lokální Keycloak databáze a aktualizují podle nastaveného synchronizačního cyklu.

Pro rychlejší přihlašování a větší odolnost vůči výpadku AD je vhodné nastavit pravidelnou synchronizaci uživatelů do Keycloak databáze. Máte dvě možnosti.

Plná synchronizace

Keycloak jednou denně, typicky v noci, stáhne všechny uživatele z AD.

Hodí se pro menší firmy nebo prostředí, kde se adresář nemění příliš často.


Průběžná synchronizace změn

Keycloak například každou hodinu stáhne jen ty uživatele, u nichž se od poslední synchronizace něco změnilo.

To je vhodné pro větší firmy s tisíci uživateli, kde by plná synchronizace trvala příliš dlouho.

Důležité upozornění: průběžná synchronizace změn nezachytí smazané uživatele.

Pokud zaměstnanec odejde a vy ho v AD smažete místo deaktivace, Keycloak se to dozví až při nejbližší plné synchronizaci.

Proto doporučujeme účty v AD spíš deaktivovat než mazat – a plnou synchronizaci spouštět alespoň jednou denně.


Přihlašování bez hesla na Windows počítačích

Pokud vaši zaměstnanci pracují na počítačích připojených do firemní Windows domény, můžete jim nabídnout ještě pohodlnější přihlašování: přijdou na firemní aplikaci a jsou automaticky přihlášeni – bez přihlašovací stránky, bez zadávání hesla.

Funguje to proto, že Windows si při přihlášení do domény vydá pro uživatele kryptografický doklad identity, takzvaný Kerberos ticket.

Prohlížeč tento doklad automaticky předloží Keycloaku, který ho ověří a uživatele pustí dovnitř.

Z pohledu uživatele to vypadá jako magie – přijde na interní portál nebo aplikaci a je okamžitě přihlášen. Ve skutečnosti Windows a Keycloak spolupracují na pozadí a přihlašování za uživatele vyřeší sami.

Tato funkce funguje pro uživatele v kancelářské síti nebo na VPN. Uživatelé přistupující z domova přes osobní počítač uvidí standardní přihlašovací formulář.

Nastavení vyžaduje součinnost s Active Directory: vytvoření speciálního servisního účtu, vygenerování keytab souboru s kryptografickými klíči účtu a nastavení Keycloaku.

Pokud vaše firma tuto funkci zvažuje, je dobré ji zahrnout do rozsahu implementačního projektu od začátku. Doplnit ji zpětně jde, ale je to o krok navíc.


Na co si dát pozor

Heslo servisního účtu nesmí expirovat

Je to jedna z nejčastějších příčin nečekaných výpadků přihlašování. Nastavte heslo servisního účtu jako „nikdy nevyprší“ – nebo si do monitoringu přidejte upozornění, když se blíží jeho expirace.


Synchronizujte jen atributy, které skutečně potřebujete

Každý atribut, který přenesete z AD do Keycloaku, je další místo, kde data o zaměstnancích leží.

Méně je více – synchronizujte jen to, co aplikace reálně využívají.


Napojte se přes šifrované spojení

Nešifrovaná komunikace s AD je bezpečnostní riziko. Vždy požadujte šifrované spojení – váš AD administrátor by měl mít příslušný certifikát k dispozici.


Testujte offboarding, nejen onboarding

Většina týmů otestuje, že nový zaměstnanec se dokáže přihlásit. Málokdo otestuje, co se stane při deaktivaci účtu v AD.

Otestujte to explicitně – ověřte, že deaktivovaný uživatel ztratí přístup do všech aplikací.

Rychlost odebrání závisí na době platnosti existujících tokenů: s krátkými access tokeny je odezva prakticky okamžitá, s delšími tokeny nebo session cookies může trvat déle.


Složitější scénáře

Základní propojení jednoho AD s Keycloakem je standardní projekt. Existují ale situace, které vyžadují víc přemýšlení.

Více AD domén

Typicky firmy po akvizici nebo s mezinárodní strukturou. Keycloak zvládá federaci z více adresářových zdrojů najednou, ale nastavení vyžaduje pečlivé plánování – zejména pokud se uživatelé v různých doménách překrývají.


Migrace z jiného systému

Přechod ze stávajícího SSO řešení na Keycloak. Data uživatelů zůstávají v AD, ale migrace konfigurace aplikací a přístupových práv je projekt sám o sobě.


Hybridní prostředí

Kombinace on-premise AD a cloudových identit, například Microsoft Entra ID nebo Google Workspace.

Keycloak dokáže fungovat jako broker, který překlenuje oba světy.

Pokud řešíte některý z těchto scénářů, rádi se na konkrétní situaci s vámi podíváme.

Řešíte Keycloak?

Pomůžeme vám s návrhem, nasazením i provozem bezpečného přihlašování.

Background imagebarevne-fotky-new/images/michal-honza-filip_exp_3

Jsme tu pro vás

Jsme součástí BIQ Group