+
+ +
+

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)

  • +
+
+
+
+ + +
+