keycloak_realm_users_info – Retrieve users from a Keycloak realm using the Keycloak API

Note

This module is part of the middleware_automation.keycloak collection.

It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install middleware_automation.keycloak.

To use it in a playbook, specify: middleware_automation.keycloak.keycloak_realm_users_info.

New in middleware_automation.keycloak 3.1.0

Synopsis

  • This module retrieves all users from a specified Keycloak realm using the Keycloak REST API.

  • Access to the REST API is performed via OpenID Connect. The user and client used must have the necessary permissions.

  • Authentication can be performed either with username/password or with a token.

  • The names of module options are snake_case versions of the camelCase ones found in the Keycloak API and its documentation at https://www.keycloak.org/docs-api/latest/rest-api/index.html.

Parameters

Parameter

Comments

auth_client_id

string

OpenID Connect client_id to authenticate to the API with.

Default: "admin-cli"

auth_client_secret

string

Client Secret to use in conjunction with auth_client_id (if required).

auth_keycloak_url

aliases: url

string / required

URL to the Keycloak instance.

auth_password

aliases: password

string

Password to authenticate for API access with.

auth_realm

string

Keycloak realm name to authenticate to for API access.

auth_username

aliases: username

string

Username to authenticate for API access with.

connection_timeout

integer

Controls the HTTP connections timeout period (in seconds) to Keycloak API.

Default: 10

http_agent

string

Configures the HTTP User-Agent header.

Default: "Ansible"

realm

string

The Keycloak realm from which users should be retrieved.

Default: "master"

refresh_token

string

Authentication refresh token for Keycloak API.

token

string

Authentication token for Keycloak API.

validate_certs

boolean

Verify TLS certificates (do not disable this in production).

Choices:

  • false

  • true ← (default)

Attributes

Attribute

Support

Description

action_group

Action group: middleware_automation.keycloak.keycloak

Use group/middleware_automation.keycloak.keycloak in module_defaults to set defaults for this module.

check_mode

Support: full

This action does not modify state.

Can run in check_mode and return changed status prediction without modifying target.

diff_mode

Support: N/A

This action does not modify state.

Will return details on what has changed (or possibly needs changing in check_mode), when in diff mode.

Examples

- name: List all users in the "MyCustomRealm" realm using username/password authentication
  middleware_automation.keycloak.keycloak_realm_users_info:
    realm: MyCustomRealm
    auth_client_id: admin-cli
    auth_keycloak_url: https://auth.example.com
    auth_realm: master
    auth_username: USERNAME
    auth_password: PASSWORD
  delegate_to: localhost

- name: List all users in the "MyCustomRealm" realm using a token
  middleware_automation.keycloak.keycloak_realm_users_info:
    realm: MyCustomRealm
    auth_client_id: admin-cli
    auth_keycloak_url: https://auth.example.com
    token: TOKEN
  delegate_to: localhost

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key

Description

users

list / elements=dictionary

List of users in the specified realm.

Returned: always

Sample: [{"email": "user1@example.com", "id": "1234-5678-90", "username": "user1"}, {"email": "user2@example.com", "id": "2345-6789-01", "username": "user2"}]

Authors

  • Felix Grzelka (@felix-grzelka)