Spec-Zone.ru › Ansible

Модуль 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

client_id OpenID Connect для аутентификации при обращении к API.

По умолчанию: "admin-cli"

auth_client_secret

string

Секрет клиента, используемый совместно с auth_client_id (если требуется).

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 (в секундах).

По умолчанию: 10

http_agent

string

добавлено в community.general 5.4.0

Настраивает заголовок HTTP User-Agent.

По умолчанию: "Ansible"

id

string

Уникальный идентификатор этой группы.

Этот параметр не обязателен при обновлении или удалении группы, но его указание сокращает количество необходимых вызовов API.

name

string

Имя группы.

Этот параметр обязателен только при создании или обновлении группы.

parents

list / elements=dictionary

добавлено в community.general 6.4.0

Список родительских групп для обрабатываемой группы, упорядоченный от верхнего уровня к нижнему.

Укажите этот параметр, чтобы создать группу как подгруппу другой группы или групп (родительских групп), а также чтобы получить доступ к существующей подгруппе по имени.

Указывать этот параметр не нужно при обращении к существующей подгруппе по её ID, поскольку в этом случае группу можно запросить напрямую, не зная её родительскую группу или группы.

id

string

Идентифицировать родительскую группу по ID.

Требуется меньше вызовов API, чем при использовании parents[].name.

Цепочку родителей любой глубины можно начать с произвольного уровня, если первая указанная родительская группа задана по ID.

Обратите внимание: теоретически можно одновременно указать и ID, и имя, но текущая реализация всегда использует только одно из этих значений, отдавая предпочтение ID.

name

string

Идентифицировать родительскую группу по имени.

Требуется больше внутренних вызовов API, чем при использовании parents[].id, поскольку для сопоставления имён с ID выполняются дополнительные действия.

Если цепочка родительских групп указана только по именам, она должна быть полной и начинаться с верхнего уровня.

Обратите внимание: теоретически можно одновременно указать и ID, и имя, но текущая реализация всегда использует только одно из этих значений, отдавая предпочтение ID.

realm

string

Realm Keycloak, в котором находится эта группа.

По умолчанию: "master"

refresh_token

string

добавлено в community.general 10.3.0

Токен обновления аутентификации для API Keycloak.

state

string

Состояние группы.

При значении present группа создаётся, если ещё не существует, или обновляется с указанными параметрами.

При значении absent существующая группа удаляется. Обратите внимание: при удалении группы с подгруппами автоматически удаляются и все её подгруппы.

Допустимые значения:

  • "present" ← (по умолчанию)
  • "absent"

token

string

добавлено в community.general 3.0.0

Токен аутентификации для API Keycloak.

validate_certs

boolean

Проверять сертификаты TLS (не отключайте эту проверку в рабочей среде).

Допустимые значения:

  • false
  • true ← (по умолчанию)

Атрибуты

Атрибут

Поддержка

Описание

action_group

Группа действий: community.general.keycloak

добавлено в community.general 10.2.0

Используйте group/community.general.keycloak в module_defaults, чтобы задать значения по умолчанию для этого модуля.

check_mode

Поддержка: full

Модуль можно запускать в режиме check_mode; он возвращает прогноз изменения состояния, не изменяя целевую систему.

diff_mode

Поддержка: full

В режиме сравнения возвращает сведения об изменениях (или о том, что, возможно, нужно изменить в check_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

dictionary

Представление группы после выполнения модуля (пример сокращён).

Возвращается: при успешном выполнении

access

dictionary

Словарь с описанием доступных вам операций с этой группой на основе использованных учётных данных.

Возвращается: всегда

Пример: {"manage": true, "manageMembership": true, "view": true}

attributes

dictionary

Атрибуты, применённые к этой группе.

Возвращается: всегда

Пример: {"attr1": ["val1", "val2", "val3"]}

clientRoles

list / elements=string

Список ролей уровня клиента, назначенных этой группе.

Возвращается: всегда

Пример: []

id

string

GUID, идентифицирующий группу.

Возвращается: всегда

Пример: "23f38145-3195-462c-97e7-97041ccea73e"

name

string

Имя группы.

Возвращается: всегда

Пример: "grp-test-123"

path

string

Путь URI к группе.

Возвращается: всегда

Пример: "/grp-test-123"

realmRoles

list / elements=string

Массив ролей уровня realm, назначенных этой группе.

Возвращается: всегда

Пример: []

subGroups

list / elements=string

Список групп, являющихся дочерними для этой группы. У этих групп те же параметры, что и в описании здесь.

Возвращается: всегда

msg

string

Сообщение о выполненном действии.

Возвращается: всегда

Авторы

  • Adam Goossens (@adamgoossens)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Запросить помощь
  • Сообщить об ошибке
  • Предложить функцию
  • Общение

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API