Модуль community.general.keycloak_group — позволяет администрировать группы Keycloak с помощью API Keycloak
Примечание
Этот модуль входит в коллекцию community.general (версия 12.6.1).
Возможно, эта коллекция уже установлена, если вы используете пакет 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 и пользователь с правами администратора, а также отдельное определение клиента с областью действия, настроенной в соответствии с вашими потребностями, и пользователь с необходимыми ролями.
- Имена параметров модуля представляют собой варианты в snake_case имён в camelCase, используемых в API Keycloak и его документации по адресу https://www.keycloak.org/docs-api/20.0.2/rest-api/index.html.
- В API Keycloak атрибуты могут иметь несколько значений. Все атрибуты представлены списками отдельных значений, и этот модуль возвращает их в таком виде. При вызове модуля для атрибутов можно передавать одиночные значения, например строку; модуль преобразует их в список, подходящий для API.
- При обновлении группы по возможности передавайте модулю её ID. Это позволяет не выполнять запрос к API для преобразования имени в ID группы.
Параметры
Параметр | Комментарии |
|---|---|
attributes dictionary | Словарь пар ключ/значение, задаваемых в качестве пользовательских атрибутов группы. Значения могут быть одиночными (например, строкой) или списком строк. |
auth_client_id string |
По умолчанию: |
auth_client_secret string | Секрет клиента, используемый совместно с |
auth_keycloak_url псевдонимы: url string / обязательный | URL экземпляра Keycloak. |
auth_password псевдонимы: password string | Пароль для аутентификации при обращении к API. |
auth_realm string | Имя realm Keycloak для аутентификации при обращении к API. |
auth_username псевдонимы: username string | Имя пользователя для аутентификации при обращении к API. |
connection_timeout integer добавлено в community.general 4.5.0 | Задаёт период ожидания для HTTP-подключений к API Keycloak (в секундах). По умолчанию: |
http_agent string добавлено в community.general 5.4.0 | Настраивает заголовок HTTP User-Agent. По умолчанию: |
id string | Уникальный идентификатор этой группы. Этот параметр не обязателен при обновлении или удалении группы, но его указание сокращает количество необходимых вызовов API. |
name string | Имя группы. Этот параметр обязателен только при создании или обновлении группы. |
parents list / elements=dictionary добавлено в community.general 6.4.0 | Список родительских групп для обрабатываемой группы, упорядоченный от верхнего уровня к нижнему. Укажите этот параметр, чтобы создать группу как подгруппу другой группы или групп (родительских групп), а также чтобы получить доступ к существующей подгруппе по имени. Указывать этот параметр не нужно при обращении к существующей подгруппе по её |
|
id string |
Идентифицировать родительскую группу по ID. Требуется меньше вызовов API, чем при использовании Цепочку родителей любой глубины можно начать с произвольного уровня, если первая указанная родительская группа задана по ID. Обратите внимание: теоретически можно одновременно указать и ID, и имя, но текущая реализация всегда использует только одно из этих значений, отдавая предпочтение ID. |
|
name string |
Идентифицировать родительскую группу по имени. Требуется больше внутренних вызовов API, чем при использовании Если цепочка родительских групп указана только по именам, она должна быть полной и начинаться с верхнего уровня. Обратите внимание: теоретически можно одновременно указать и ID, и имя, но текущая реализация всегда использует только одно из этих значений, отдавая предпочтение ID. |
realm string | Realm Keycloak, в котором находится эта группа. По умолчанию: |
refresh_token string добавлено в community.general 10.3.0 | Токен обновления аутентификации для API Keycloak. |
state string | Состояние группы. При значении При значении Допустимые значения:
|
token string добавлено в community.general 3.0.0 | Токен аутентификации для API Keycloak. |
validate_certs boolean | Проверять сертификаты TLS (не отключайте эту проверку в рабочей среде). Допустимые значения:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
action_group | Группа действий: community.general.keycloak добавлено в community.general 10.2.0 | Используйте |
check_mode | Поддержка: full | Модуль можно запускать в режиме |
diff_mode | Поддержка: full | В режиме сравнения возвращает сведения об изменениях (или о том, что, возможно, нужно изменить в |
Примечания
Примечание
- В настоящее время атрибуты
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 dictionary | Представление группы после выполнения модуля (пример сокращён). Возвращается: при успешном выполнении |
|
access dictionary |
Словарь с описанием доступных вам операций с этой группой на основе использованных учётных данных. Возвращается: всегда Пример: |
|
attributes dictionary |
Атрибуты, применённые к этой группе. Возвращается: всегда Пример: |
|
clientRoles list / elements=string |
Список ролей уровня клиента, назначенных этой группе. Возвращается: всегда Пример: |
|
id string |
GUID, идентифицирующий группу. Возвращается: всегда Пример: |
|
name string |
Имя группы. Возвращается: всегда Пример: |
|
path string |
Путь URI к группе. Возвращается: всегда Пример: |
|
realmRoles list / elements=string |
Массив ролей уровня realm, назначенных этой группе. Возвращается: всегда Пример: |
|
subGroups list / elements=string |
Список групп, являющихся дочерними для этой группы. У этих групп те же параметры, что и в описании здесь. Возвращается: всегда |
msg string | Сообщение о выполненном действии. Возвращается: всегда |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/general/keycloak_group_module.html