Skip to main content
Connect your Keycloak realm to enable Oliver (Security Professional) to inspect realms, audit clients, review users and roles, and analyze identity and access configuration. Keycloak authenticates with a confidential service-account client that holds realm-management roles on the target realm.

Supported platforms

Prerequisites

  • A Keycloak realm you want CloudThinker to inspect.
  • Admin access to create a confidential client and assign service-account roles — kcadm.sh (self-hosted) or the realm console (Phase Two).
  • The realm’s base URL and realm name.
The connection scopes to the roles you grant the cloudthinker-svc service account. Assign the least-privileged realm-management roles that cover what CloudThinker needs.

Setup

Both paths create the same artifact: a cloudthinker-svc confidential client with realm-management roles on its service account. Self-hosted uses kcadm.sh; Phase Two uses the realm console.
Provision the client with kcadm.sh, Keycloak’s admin CLI. Run from any shell where it’s available.
1

Authenticate

2

Create the client

3

Assign realm-management roles

Use narrower roles (e.g. view-realm, view-users) if you want least-privilege.
4

Get the client secret

5

Add the connection in CloudThinker

Navigate to Connections → Keycloak and enter:
  • KEYCLOAK_URL: http://<host-ip>:8080
  • KEYCLOAK_REALM: your realm name
  • KEYCLOAK_CLIENT_ID: cloudthinker-svc
  • KEYCLOAK_CLIENT_SECRET: secret from the previous step
Click Connect. CloudThinker shows a Connected status once it succeeds.

Connection details

Required permissions

The cloudthinker-svc service account needs realm-management roles on the target realm. Common roles:
For read-only analysis, assign only the view-* and query-* roles. Add manage-* roles only when you need Oliver to make changes.

Agent capabilities

Once connected, Oliver can:

Verify the connection

Example prompts

Troubleshooting

  • Verify the client secret was copied correctly
  • Confirm Client authentication is enabled on the client
  • Ensure the service account has realm-management roles assigned
  • Service account is missing the required realm-management role for that operation
  • Self-hosted: re-run add-roles with the missing role
  • Phase Two: re-check both pages of the role assignment list
  • Self-hosted: confirm the base URL matches your Keycloak hostname
  • Phase Two: copy the URL exactly from the realm Details → Host field
  • The client must be confidential — publicClient=false (self-hosted) or Client authentication enabled (Phase Two)
  • Public clients have no secret

Security

  • Least privilege — grant only the permissions the agents need for your use case; start read-only and widen later.
  • Read-only by default — use read-only credentials unless you want agents to make changes through this connection.
  • Rotate credentials — rotate keys and tokens on your normal schedule; CloudThinker picks up the new value when you update the connection.
  • Revoke on offboarding — remove the credential at the provider when you delete a connection or a teammate leaves.
  • Dedicated client — use cloudthinker-svc as a dedicated service-account client, not a shared admin client.
  • Secret rotation — rotate the client secret periodically via the Credentials tab.

Oliver Agent

Security and compliance agent

Connections Overview

All available connections