community.general.keycloak_group модуль — Позволяет администрировать группы Keycloak через API Keycloak
Примечание
Этот модуль входит в коллекцию community.general (версия 9.5.0).
У вас, возможно, уже установлена эта коллекция, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.general.
Чтобы использовать его в книге задач, укажите: community.general.keycloak_group.
Обзор
- Этот модуль позволяет добавлять, удалять или изменять группы Keycloak через REST API Keycloak. Он требует доступа к REST API через OpenID Connect; пользователь, подключающийся, и используемый клиент должны иметь соответствующие права доступа. В стандартной установке Keycloak admin-cli и административный пользователь подойдут, как и отдельное определение клиента со scope, настроенным для ваших потребностей, и пользователем с соответствующими ролями.
- Имена опций модуля — snake_cased версии camelCase, встречающихся в API Keycloak и его документации по адресу https://www.keycloak.org/docs-api/20.0.2/rest-api/index.html.
- Атрибуты в API Keycloak — многозначные. Все атрибуты — списки отдельных значений, и этот модуль вернёт их в таком формате. При вызове модуля вы можете передать отдельные значения атрибутов, и это будет преобразовано в список, подходящий для API.
- При обновлении группы, где это возможно, предоставьте модулю ID группы. Это устраняет поиск в API для перевода имени в ID группы.
Параметры
Параметр | Комментарии |
|---|---|
attributes словарь | Словарь пар ключ-значение для установки пользовательских атрибутов группы. Значения могут быть одиночными (например, строкой) или списком строк. |
auth_client_id строка | Используемый для аутентификации на API токен OpenID Connect. По умолчанию: |
auth_client_secret строка | Секрет клиента для использования совместно с |
auth_keycloak_url псевдонимы: url строка / обязательно | URL-адрес экземпляра Keycloak. |
auth_password псевдонимы: password строка | Пароль для аутентификации с API. |
auth_realm строка | Имя области Keycloak для аутентификации с API. |
auth_username псевдонимы: username строка | Имя пользователя для аутентификации с API. |
connection_timeout целое число добавлен в community.general 4.5.0 | Управляет временем ожидания HTTP-соединений (в секундах) с API Keycloak. По умолчанию: |
| ... | ... |
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: полная | Может работать в режиме |
diff_mode | Поддержка: полная | Вернёт подробности о том, что изменилось (или, возможно, должно измениться в |
Примечания
Примечание
- В настоящее время атрибуты
end_state.realmRoles,end_state.clientRoles, иend_state.access, возвращаемые API Keycloak, являются только для чтения для групп. Это ограничение будет устранено в будущих версиях данного модуля.
Примеры
- name: Create a Keycloak group, authentication with credentials
community.general.keycloak_group:
name: my-new-kc-group
realm: MyCustomRealm
state: present
auth_client_id: admin-cli
auth_keycloak_url: https://auth.example.com/auth
auth_realm: master
auth_username: USERNAME
auth_password: PASSWORD
register: result_new_kcgrp
delegate_to: localhost
- name: Create a Keycloak group, authentication with token
community.general.keycloak_group:
name: my-new-kc-group
realm: MyCustomRealm
state: present
auth_client_id: admin-cli
auth_keycloak_url: https://auth.example.com/auth
token: TOKEN
delegate_to: localhost
- name: Delete a keycloak group
community.general.keycloak_group:
id: '9d59aa76-2755-48c6-b1af-beb70a82c3cd'
state: absent
realm: MyCustomRealm
auth_client_id: admin-cli
auth_keycloak_url: https://auth.example.com/auth
auth_realm: master
auth_username: USERNAME
auth_password: PASSWORD
delegate_to: localhost
- name: Delete a Keycloak group based on name
community.general.keycloak_group:
name: my-group-for-deletion
state: absent
auth_client_id: admin-cli
auth_keycloak_url: https://auth.example.com/auth
auth_realm: master
auth_username: USERNAME
auth_password: PASSWORD
delegate_to: localhost
- name: Update the name of a Keycloak group
community.general.keycloak_group:
id: '9d59aa76-2755-48c6-b1af-beb70a82c3cd'
name: an-updated-kc-group-name
state: present
auth_client_id: admin-cli
auth_keycloak_url: https://auth.example.com/auth
auth_realm: master
auth_username: USERNAME
auth_password: PASSWORD
delegate_to: localhost
- name: Create a keycloak group with some custom attributes
community.general.keycloak_group:
auth_client_id: admin-cli
auth_keycloak_url: https://auth.example.com/auth
auth_realm: master
auth_username: USERNAME
auth_password: PASSWORD
name: my-new_group
attributes:
attrib1: value1
attrib2: value2
attrib3:
- with
- numerous
- individual
- list
- items
delegate_to: localhost
- name: Create a Keycloak subgroup of a base group (using parent name)
community.general.keycloak_group:
name: my-new-kc-group-sub
realm: MyCustomRealm
state: present
auth_client_id: admin-cli
auth_keycloak_url: https://auth.example.com/auth
auth_realm: master
auth_username: USERNAME
auth_password: PASSWORD
parents:
- name: my-new-kc-group
register: result_new_kcgrp_sub
delegate_to: localhost
- name: Create a Keycloak subgroup of a base group (using parent id)
community.general.keycloak_group:
name: my-new-kc-group-sub2
realm: MyCustomRealm
state: present
auth_client_id: admin-cli
auth_keycloak_url: https://auth.example.com/auth
auth_realm: master
auth_username: USERNAME
auth_password: PASSWORD
parents:
- id: "{{ result_new_kcgrp.end_state.id }}"
delegate_to: localhost
- name: Create a Keycloak subgroup of a subgroup (using parent names)
community.general.keycloak_group:
name: my-new-kc-group-sub-sub
realm: MyCustomRealm
state: present
auth_client_id: admin-cli
auth_keycloak_url: https://auth.example.com/auth
auth_realm: master
auth_username: USERNAME
auth_password: PASSWORD
parents:
- name: my-new-kc-group
- name: my-new-kc-group-sub
delegate_to: localhost
- name: Create a Keycloak subgroup of a subgroup (using direct parent id)
community.general.keycloak_group:
name: my-new-kc-group-sub-sub
realm: MyCustomRealm
state: present
auth_client_id: admin-cli
auth_keycloak_url: https://auth.example.com/auth
auth_realm: master
auth_username: USERNAME
auth_password: PASSWORD
parents:
- id: "{{ result_new_kcgrp_sub.end_state.id }}"
delegate_to: localhost
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие являются полями, уникальными для данного модуля:
Ключ | Описание |
|---|---|
end_state сложный | Представление группы после выполнения модуля (образец усечен). Возвращается: при успехе |
|
access словарь |
Словарь, описывающий доступ к этой группе на основе используемых учетных данных. Возвращается: всегда Пример: |
|
attributes словарь |
Атрибуты, применённые к этой группе. Возвращается: всегда Пример: |
|
clientRoles список / элементы=строка |
Список ролей на уровне клиента, предоставленных этой группе. Возвращается: всегда Пример: |
|
id строка |
GUID, идентифицирующий группу. Возвращается: всегда Пример: |
|
name строка |
Название группы. Возвращается: всегда Пример: |
|
path строка |
URI путь к группе. Возвращается: всегда Пример: |
|
realmRoles список / элементы=строка |
Массив ролей на уровне домена, предоставленных этой группе. Возвращается: всегда Пример: |
|
subGroups список / элементы=строка |
Список групп, являющихся дочерними по отношению к этой группе. Эти группы будут иметь те же параметры, что и описаны здесь. Возвращается: всегда |
msg строка | Сообщение о том, какое действие было выполнено. Возвращается: всегда |
Ссылки на сборку
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/general/keycloak_group_module.html