Keycloak
Free · OSSIdentity (self-hosted)
On-prem identity broker — Okta-grade audit events without the Okta bill.
Keycloak homepage ↗Open-source identity broker — the on-prem alternative to Okta and Auth0. Realms, OIDC clients, federation hops, admin-console changes. Every login, every token, every role change is an audit event you can read like the IdP saw it.
Production-shippable, newer or thinner field coverage. Watch the changelog before pinning compliance claims.
What it watches
- Interactive logins — success, failure, MFA challenge outcome
- Token issuance + refresh + introspection events
- Admin-console actions — realm/client/role/group changes
- Federation hops (SAML, OIDC, social IdP)
- User self-service events — register, password reset, email verify
- Service-account + offline-token activity
MITRE ATT&CK coverage
Tactics this connector gives CyberCLI visibility into.
Every alert this connector surfaces
14 event types
Every matrix-covered event_type on the passthrough lane — pinned by the engine's coverage matrix.
The right column shows the operator-friendly phrase the dashboard renders. High-severity
AI-lane signals are summarized in What it watches above (Warden + Herald
handle those); the rest take the substrate's passthrough lane (no AI tokens burned).
| event_type | dashboard renders |
|---|---|
| keycloak_auth_failed | Authentication failed on keycloak |
| keycloak_auth_ok | Authentication success on keycloak |
| keycloak_admin_create | Admin created object on keycloak |
| keycloak_admin_delete | Admin deleted object on keycloak |
| keycloak_admin_update | Admin updated object on keycloak |
| keycloak_admin_action | Admin action on keycloak |
| keycloak_admin_other | Admin activity on keycloak |
| keycloak_credential_change | Credential change on keycloak |
| keycloak_impersonate | Impersonation event on keycloak |
| keycloak_register_failed | User registration failed on keycloak |
| keycloak_session_event | Session event on keycloak |
| keycloak_other_error | Keycloak error on keycloak |
| keycloak_malformed | Malformed Keycloak log on keycloak |
| keycloak_other | Identity activity on keycloak |
What it helps you catch
What you'd see in CyberCLI
illustrativeCatches a brute-force burst against a single realm by the LOGIN_ERROR cluster on the same client + src_ip.
Routed to Warden (triage) → Knight (detection) → Paladin (containment)
⛓ every step hash-chained · replayable
What CyberCLI reads from Keycloak
audit our mathKeycloak's jboss-logging event listener emits a JSON envelope plus a key=value event body for every identity action — interactive logins, token refreshes, admin-console changes, federation hops. The 11 fields we read carry the full audit picture: who acted (user_id, acct), from where (src_ip, host), in which tenant (keycloak_realm, keycloak_client, keycloak_session), what they did (keycloak_event_type, keycloak_resource_type, keycloak_resource_path, keycloak_auth_method), and why it failed if it did (keycloak_error). The operator reads the same evidence the IdP saw, no inference required.
Full field index · 11 fields ↓
.action.cybercli_class.cybercli_low_signal.cybercli_parse_status.cybercli_raw_line.cybercli_wire_format.detail.event_id.event_type.keycloak_event_type.rule_level MITRE techniques typically mapped
- T1078 ↗
Valid AccountsInitial Access · Persistence
- T1110 ↗
Brute ForceCredential Access
- T1556 ↗
Modify Authentication ProcessCredential Access · Persistence
- T1098 ↗
Account ManipulationPersistence
- T1136 ↗
Create AccountPersistence
- T1550.001 ↗
Application Access TokenDefense Evasion · Lateral Movement
Trust Ladder ceiling · L0 → L4
- ·L0–L2: digest the login/token/admin event, notify Herald, summarize the auth chain for the operator
- ·L3 (Knight verification): correlate LOGIN_ERROR bursts into brute-force candidates, cross-reference src_ip with prior sessions and other identity connectors — read-only Admin API queries
- ·L4 (Paladin containment, Pro+): user disable via keycloak.disable_user · active-session logout via keycloak.logout_sessions
- ·L5+: realm/client config edits, identity-provider federation changes, role and group assignment
- ·Any action against admin or service-account realms, and any change to break-glass identities
Full ladder semantics · /trust →
Field count + sample event auto-derived from src/cybercli/connectors/keycloak/vector.vrl at build time. Numbers update the moment the engine's parser changes — no drift.
Close more of the kill chain
Keycloak covers 5 of 14 ATT&CK tactics. Pair it with these to widen coverage:
How to connect
- 1 Enable Keycloak's jboss-logging event listener for the realms you care about (admin console → Events).
- 2 Stream Keycloak logs to CyberCLI via file or syslog.
- 3 Run `cybercli onboard keycloak`.
- 4 Confirm login + admin events in the dashboard's Connectors panel.
podman run --name keycloak -p 8080:8080 quay.io/keycloak/keycloak start-dev
Fully local. Keycloak runs on your hardware; CyberCLI reads its event log in-network. Identity data never leaves the box.