keycloak_group – Позволяет администрировать группы Keycloak через API Keycloak
Новое в версии 2.8.
Обзор
- Этот модуль позволяет добавлять, удалять или изменять группы Keycloak через REST API Keycloak. Он требует доступа к REST API через OpenID Connect; пользователь, подключающийся, и используемый клиент должны иметь необходимые права доступа. В стандартной установке Keycloak admin-cli и администраторский пользователь будут работать, как и отдельное определение клиента с настройкой области действия, соответствующей вашим потребностям, и пользователем, имеющим соответствующие роли.
- Имена опций модуля — это snake_case-версии camelCase-имен, которые можно найти в API Keycloak и его документации по адресу http://www.keycloak.org/docs-api/3.3/rest-api/.
- Атрибуты являются многозначными в API Keycloak. Все атрибуты являются списками отдельных значений и будут возвращаться таким образом этим модулем. Вы можете передавать одиночные значения для атрибутов при вызове модуля, и это будет преобразовано в список, подходящий для API.
- При обновлении группы, если это возможно, предоставьте идентификатор группы модулю. Это устраняет поиск в API для преобразования имени в идентификатор группы.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attributes словарь | Словарь пар «ключ-значение» для установки пользовательских атрибутов для группы. Значения могут быть одиночными значениями (например, строкой) или списком строк. | |
| auth_client_id строка / обязательно | По умолчанию: "admin-cli" | OpenID Connect client_id для аутентификации в API. |
| auth_client_secret строка | Секретный ключ клиента для использования в сочетании с auth_client_id (если требуется). | |
| auth_keycloak_url строка / обязательно | URL-адрес экземпляра Keycloak. алиасы: url | |
| auth_password строка / обязательно | Пароль для аутентификации для доступа к API. алиасы: password | |
| auth_realm строка / обязательно | Имя области Keycloak для аутентификации для доступа к API. | |
| auth_username строка / обязательно | Имя пользователя для аутентификации для доступа к API. алиасы: username | |
| id строка | Уникальный идентификатор этой группы. Этот параметр не требуется для обновления или удаления группы, но его предоставление уменьшит количество вызовов API. | |
| name строка | Имя группы. Этот параметр требуется только при создании или обновлении группы. | |
| realm строка | По умолчанию: "master" | Область Keycloak, в которой находится эта группа. |
| state строка / обязательно |
| Состояние группы. В present, группа будет создана, если она еще не существует, или обновлена с предоставленными параметрами.В absent, группа будет удалена, если она существует. |
| validate_certs логическое |
| Проверять сертификаты TLS (не отключайте это в рабочей среде). |
Примечания
Примечание
- В настоящее время атрибуты realmRoles, clientRoles и access, возвращаемые API Keycloak, являются только для чтения для групп. Это ограничение будет устранено в будущей версии модуля.
Примеры
- name: Create a Keycloak group
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
delegate_to: localhost
- name: Delete a keycloak group
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
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
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
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
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание | |
|---|---|---|---|
| group сложный тип | всегда | Представление группы после выполнения модуля (образец усечен). | |
| access словарь | всегда | Словарь, описывающий доступ, которым вы обладаете к этой группе на основе используемых учетных данных. Пример: {'manage': True, 'manageMembership': True, 'view': True} | |
| attributes словарь | всегда | Примененные к этой группе атрибуты Пример: {'attr1': ['val1', 'val2', 'val3']} | |
| clientRoles список | всегда | Список ролей на уровне клиента, предоставленных этой группе | |
| id строка | всегда | GUID, идентифицирующий группу Пример: 23f38145-3195-462c-97e7-97041ccea73e | |
| name строка | всегда | Имя группы Пример: grp-test-123 | |
| path строка | всегда | URI-путь к группе Пример: /grp-test-123 | |
| realmRoles список | всегда | Массив ролей на уровне области, предоставленных этой группе | |
| subGroups список | всегда | Список групп, являющихся дочерними для этой группы. Эти группы будут иметь те же параметры, что и указано здесь. | |
Статус
- Гарантии обратной совместимости интерфейса этого модуля нет. [превью]
- Этот модуль поддерживается сообществом Ansible. [community]
Авторы
- Adam Goossens (@adamgoossens)
Подсказка
Если вы заметите какие-либо проблемы в этой документации, вы можете изменить этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/modules/keycloak_group_module.html