keycloak_organization – Allows administration of Keycloak organizations using 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_organization.
New in middleware_automation.keycloak 3.1.0
Synopsis
This module allows you to add, remove or modify Keycloak organizations using the Keycloak REST API. It requires access to the REST API using OpenID Connect; the user connecting and the client being used must have the requisite access rights. In a default Keycloak installation, admin-cli and an admin user would work, as would a separate client definition with the scope tailored to your needs and a user having the expected roles.
The names of module options are snake_cased 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.
Attributes are multi-valued in the Keycloak API. All attributes are lists of individual values and are returned that way by this module. You may pass single values for attributes when calling the module, and this is translated into a list suitable for the API.
Organizations are available in Keycloak 26 and later. The realm must have organizations enabled (
organizations_enabled=truein the middleware_automation.keycloak.keycloak_realm module) before this module can be used.When updating an organization, where possible provide the organization ID to the module. This removes a lookup to the API to translate the name into the organization ID.
Parameters
Parameter |
Comments |
|---|---|
URL-friendly alias for the organization. If not provided during creation, defaults to the organization name if URL-safe. The alias is immutable once set and cannot be changed on update. |
|
A dict of key/value pairs to set as custom attributes for the organization. Values may be single values (for example a string) or a list of strings. |
|
OpenID Connect client_id to authenticate to the API with. Default: |
|
Client Secret to use in conjunction with auth_client_id (if required). |
|
URL to the Keycloak instance. |
|
Password to authenticate for API access with. |
|
Keycloak realm name to authenticate to for API access. |
|
Username to authenticate for API access with. |
|
Controls the HTTP connections timeout period (in seconds) to Keycloak API. Default: |
|
Description of the organization. |
|
List of internet domains associated with the organization. A domain name can only belong to one organization within a realm. |
|
The domain name (e.g. |
|
Whether the domain has been verified. Choices:
|
|
Whether the organization is enabled. Disabled organizations block member authentication. Choices:
|
|
Configures the HTTP User-Agent header. Default: |
|
The unique identifier for this organization. This parameter is not required for updating or deleting an organization but providing it reduces the number of API calls required. |
|
Name of the organization. This parameter is required when creating a new organization. |
|
The Keycloak realm under which this organization resides. Default: |
|
Authentication refresh token for Keycloak API. |
|
State of the organization. On On Choices:
|
|
Authentication token for Keycloak API. |
|
Verify TLS certificates (do not disable this in production). Choices:
|
Attributes
Attribute |
Support |
Description |
|---|---|---|
Action group: middleware_automation.keycloak.keycloak added in middleware_automation.keycloak 3.1.0 |
Use |
|
Support: full |
Can run in |
|
Support: full |
Will return details on what has changed (or possibly needs changing in |
Examples
- name: Create a Keycloak organization
middleware_automation.keycloak.keycloak_organization:
name: my-org
description: My Organization
enabled: true
realm: MyRealm
state: present
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: Create a Keycloak organization with domains
middleware_automation.keycloak.keycloak_organization:
name: acme-corp
description: Acme Corporation
enabled: true
domains:
- name: acme.com
- name: acme.org
verified: true
realm: MyRealm
state: present
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: Update a Keycloak organization
middleware_automation.keycloak.keycloak_organization:
name: my-org
description: Updated description
realm: MyRealm
state: present
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: Delete a Keycloak organization
middleware_automation.keycloak.keycloak_organization:
name: my-org
state: absent
realm: MyRealm
auth_client_id: admin-cli
auth_keycloak_url: https://auth.example.com
auth_realm: master
auth_username: USERNAME
auth_password: PASSWORD
delegate_to: localhost
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
|---|---|
Representation of the organization after module execution. Returned: on success |
|
URL-friendly alias of the organization. Returned: always Sample: |
|
Attributes applied to this organization. Returned: always Sample: |
|
Description of the organization. Returned: always Sample: |
|
Domains associated with the organization. Returned: always Sample: |
|
Whether the organization is enabled. Returned: always Sample: |
|
GUID that identifies the organization. Returned: always Sample: |
|
Name of the organization. Returned: always Sample: |
|
Message as to what action was taken. Returned: always |