KeyCloak jest dziś jedną z najczęściej wykorzystywanych platform enterprise Identity and Access Management (IAM). W Inero Software pracujemy z Keycloakiem na co dzień — realizując wdrożenia, integracje oraz usługi doradcze Keycloak dla organizacji, które traktują go jako kluczowy element swojej architektury bezpieczeństwa.
W jednym z naszych ostatnich projektów produkcyjnych Keycloak został zintegrowany z platformą SIEM, aby zapewnić pełną widoczność zdarzeń związanych z uwierzytelnianiem i autoryzacją. Poniżej dzielimy się tym, jak taka integracja wygląda w praktyce — oraz na co naprawdę zwrócić uwagę, gdy Keycloak działa w skali enterprise.
SIEM jako naturalne rozszerzenie warstwy IAM w środowisku enterprise
W dużych organizacjach IAM nigdy nie funkcjonuje jako system odizolowany. Uwierzytelnianie i autoryzacja to jedynie jeden z etapów znacznie szerszego łańcucha procesów biznesowych i bezpieczeństwa. Właśnie dlatego przedsiębiorstwa korzystają z platform SIEM, takich jak Splunk, aby centralizować i korelować zdarzenia pochodzące z wielu różnych systemów.
Z naszego doświadczenia w pracy z architekturami SSO opartymi o Keycloak wynika, że zdarzenia IAM należą do najbardziej wartościowych źródeł danych w pipeline’ach SIEM. Podstawy takich rozwiązań opisaliśmy wcześniej w artykule
Hands-on Keycloak SSO – from setup to integration, pokazując, jak tożsamość staje się współdzieloną usługą w skali całej organizacji.
Punkt wyjścia: brak gotowej integracji Keycloak–SIEM
Choć Keycloak oferuje rozbudowane API oraz liczne punkty rozszerzeń, wdrożenia enterprise bardzo często ujawniają luki, które pozostają niewidoczne w mniejszych środowiskach. W tym przypadku platforma SIEM nie udostępniała utrzymywanego, gotowego do użycia w produkcji konektora umożliwiającego ingestowanie zdarzeń z Keycloaka.
To schemat, z którym regularnie spotykamy się przy integracjach Keycloak w środowiskach enterprise: funkcjonalności dostępne „out of the box” dobrze pokrywają rdzeń IAM, natomiast integracja z narzędziami bezpieczeństwa bardzo często wymaga prac customowych. Podobne ograniczenia — oraz sposoby ich adresowania — omawiamy również w naszym przeglądzie
Keycloak best practices for secure enterprise environments.
Skalowalność i wydajność: realia środowiska produkcyjnego
W tym wdrożeniu Keycloak obsługiwał setki zdarzeń uwierzytelniania na sekundę. Naiwne podejście — polegające na wysyłaniu każdego zdarzenia do systemu SIEM w osobnym żądaniu HTTP — prowadziłoby do niepotrzebnego obciążenia i realnego ryzyka degradacji wydajności samej warstwy IAM.
Aby zachować stabilność systemu, dostarczona przez nas integracja obejmuje:
buforowanie zdarzeń generowanych przez Keycloaka,
batchowanie zdarzeń do zoptymalizowanych paczek,
kontrolowany mechanizm wysyłki oparty o próg ilościowy lub czasowy.
Taki wzorzec jest kluczowy w wdrożeniach Keycloak o dużym natężeniu ruchu i dobrze wpisuje się w nasze podejście do strojenia wydajności w wielkoskalowych systemach IAM.

Architektoniczne podejścia do dostarczania zdarzeń Keycloak do SIEM
Choć podstawowe wyzwanie pozostaje niezmienne — duży wolumen zdarzeń oraz konieczność ich buforowania i batchowania przed wysyłką — w praktyce istnieją dwa główne podejścia architektoniczne do integracji Keycloak z systemem SIEM.
Integracja na poziomie aplikacji (wewnątrz Keycloaka)
Pierwsze podejście polega na realizacji zbierania, buforowania i wysyłki zdarzeń na poziomie aplikacyjnym, bezpośrednio w runtime’ie Keycloaka. Może to być zaimplementowane zarówno jako kod customowy, jak i z wykorzystaniem istniejących bibliotek Java, które oferują wbudowane mechanizmy buforowania, batchowania oraz niezawodnej wysyłki zdarzeń.
Ponieważ sam Keycloak jest oparty o Javę, takie podejście pozwala utrzymać integrację blisko warstwy IAM i zapewnia precyzyjną kontrolę nad:
tym, które zdarzenia są zbierane,
sposobem ich wzbogacania lub filtrowania,
momentem oraz formą ich przekazywania do systemu SIEM.
Kosztem tego rozwiązania jest odpowiedzialność za utrzymanie: wymaga ono własnej implementacji, testów oraz długoterminowego utrzymania, ale w zamian oferuje maksymalną elastyczność i pełną widoczność.
Integracja na poziomie platformy z wykorzystaniem agentów Kubernetes
Drugie podejście przenosi odpowiedzialność za zbieranie i wysyłkę zdarzeń poza aplikację, na poziom platformy. W środowiskach opartych o Kubernetes dostawcy systemów SIEM — tacy jak Splunk — oferują dedykowane agenty, które potrafią zbierać i forwardować logi oraz zdarzenia z aplikacji uruchomionych w klastrze.
W tym modelu:
język implementacji aplikacji przestaje mieć znaczenie,
logika buforowania, formatowania i wysyłki jest obsługiwana przez agenta,
nakład pracy operacyjnej jest mniejszy dzięki wykorzystaniu narzędzi wspieranych przez dostawcę.
Odbywa się to kosztem mniejszej kontroli nad semantyką i przetwarzaniem zdarzeń, jednak w standaryzowanych środowiskach Kubernetes może znacząco uprościć samą integrację.
W praktyce wybór pomiędzy tymi podejściami sprowadza się do znalezienia równowagi pomiędzy poziomem kontroli a nakładem prac implementacyjnych. Integracja na poziomie aplikacyjnym oferuje najwyższą precyzję i elastyczność, natomiast integracja platformowa stawia na szybkość wdrożenia i prostotę operacyjną — oba podejścia są uzasadnione, w zależności od wymagań i ograniczeń środowiska enterprise.
Wnioski z wdrożenia
Nasz główny wniosek jest prosty: Keycloak bardzo dobrze skaluje się w środowiskach enterprise, jednak jego realna wartość ujawnia się dopiero wtedy, gdy zostanie świadomie zintegrowany z otaczającą go infrastrukturą bezpieczeństwa.
Integracja z systemem SIEM nie jest opcjonalnym dodatkiem — stanowi naturalne rozszerzenie dojrzałej architektury IAM. Dla organizacji działających w dużej skali to właśnie ten obszar pokazuje, jak duże znaczenie ma doświadczenie w integracji i wdrażaniu Keycloaka w środowiskach produkcyjnych.
W Inero rozwiązania tego typu nie są eksperymentami ani proof-of-conceptami — to element naszego standardowego podejścia do dostarczania gotowych do pracy produkcyjnej platform IAM dla klientów enterprise, opartych na realnym doświadczeniu projektowym, a nie wyłącznie na dokumentacji.

