Модуль community.general.keycloak_client_rolemapping — управление client_rolemapping в Keycloak с помощью API Keycloak
Примечание
Этот модуль входит в коллекцию community.general (версия 12.6.1).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Чтобы установить коллекцию, используйте: ansible-galaxy collection install community.general.
Чтобы использовать коллекцию в плейбуке, укажите: community.general.keycloak_client_rolemapping.
Добавлено в community.general 3.5.0
Обзор
- Этот модуль позволяет добавлять, удалять или изменять client_rolemapping в Keycloak с помощью REST API Keycloak. Для работы необходим доступ к REST API через OpenID Connect; подключающийся пользователь и используемый клиент должны иметь необходимые права доступа. В стандартной установке Keycloak подойдут admin-cli и пользователь-администратор, а также отдельное определение клиента с областью действия, настроенной под ваши потребности, и пользователь с необходимыми ролями.
- Названия параметров модуля представляют собой варианты в snake_case названий в camelCase, используемых в API Keycloak и его документации по адресу https://www.keycloak.org/docs-api/8.0/rest-api/index.html.
- В API Keycloak атрибуты могут содержать несколько значений. Все атрибуты являются списками отдельных значений, и модуль возвращает их в таком виде. При вызове модуля для атрибутов можно передавать одиночные значения — они будут преобразованы в список, подходящий для API.
- При обновлении client_rolemapping по возможности передавайте модулю идентификатор роли. Это позволяет избежать обращения к API для преобразования имени в идентификатор роли.
Параметры
Параметр | Комментарии |
|---|---|
auth_client_id string | OpenID Connect По умолчанию: |
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. |
cid string | Идентификатор клиента, для которого выполняется сопоставление. Этот параметр не требуется для обновления или удаления сопоставления ролей, но его указание уменьшает количество необходимых вызовов API. |
client_id string | Имя клиента, для которого выполняется сопоставление (отличается от Этот параметр обязателен (для сокращения количества вызовов API его можно заменить на cid). |
connection_timeout integer добавлено в community.general 4.5.0 | Задает время ожидания HTTP-соединений с API Keycloak (в секундах). По умолчанию: |
gid string | Идентификатор группы, для которой выполняется сопоставление. Этот параметр не требуется для обновления или удаления сопоставления ролей, но его указание уменьшает количество необходимых вызовов API. |
group_name string | Имя группы, для которой выполняется сопоставление. Этот параметр обязателен (для сокращения количества вызовов API его можно заменить на gid). |
http_agent string добавлено в community.general 5.4.0 | Настраивает HTTP-заголовок User-Agent. По умолчанию: |
parents list / elements=dictionary добавлено в community.general 7.1.0 | Список родительских групп для обрабатываемой группы, отсортированный сверху вниз. Укажите этот параметр, если ваша группа является подгруппой и вы не передаете GID в |
|
id string |
Идентифицировать родительскую группу по идентификатору. Требуется меньше вызовов API, чем при использовании Цепочку родительских групп можно начать с любого уровня, если первая указанная родительская группа задана по идентификатору. Обратите внимание: теоретически можно одновременно указать и идентификатор, и имя, но текущая реализация всегда использует только одно из них, отдавая предпочтение идентификатору. |
|
name string |
Идентифицировать родительскую группу по имени. Для преобразования имен в идентификаторы требуется больше внутренних вызовов API, чем при использовании Если цепочка родительских групп задана только именами, она должна быть полной вплоть до верхнего уровня. Обратите внимание: теоретически можно одновременно указать и идентификатор, и имя, но текущая реализация всегда использует только одно из них, отдавая предпочтение идентификатору. |
realm string | Realm Keycloak, в котором находится этот role_representation. По умолчанию: |
refresh_token string добавлено в community.general 10.3.0 | Токен обновления аутентификации для API Keycloak. |
roles list / elements=dictionary | Роли, сопоставляемые с группой. |
|
id string |
Уникальный идентификатор этого role_representation. Этот параметр не требуется для обновления или удаления role_representation, но его указание уменьшает количество необходимых вызовов API. |
|
name string |
Имя role_representation. Этот параметр обязателен только при создании или обновлении role_representation. |
state string | Состояние client_rolemapping. При значении При значении Варианты:
|
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 | Поддержка: полная | Модуль можно запускать в |
diff_mode | Поддержка: полная | В режиме diff возвращает сведения о том, что изменилось (или, возможно, должно измениться в |
Примеры
- name: Map a client role to a group, authentication with credentials
community.general.keycloak_client_rolemapping:
realm: MyCustomRealm
auth_client_id: admin-cli
auth_keycloak_url: https://auth.example.com/auth
auth_realm: master
auth_username: USERNAME
auth_password: PASSWORD
state: present
client_id: client1
group_name: group1
roles:
- name: role_name1
id: role_id1
- name: role_name2
id: role_id2
delegate_to: localhost
- name: Map a client role to a group, authentication with token
community.general.keycloak_client_rolemapping:
realm: MyCustomRealm
auth_client_id: admin-cli
auth_keycloak_url: https://auth.example.com/auth
token: TOKEN
state: present
client_id: client1
group_name: group1
roles:
- name: role_name1
id: role_id1
- name: role_name2
id: role_id2
delegate_to: localhost
- name: Map a client role to a subgroup, authentication with token
community.general.keycloak_client_rolemapping:
realm: MyCustomRealm
auth_client_id: admin-cli
auth_keycloak_url: https://auth.example.com/auth
token: TOKEN
state: present
client_id: client1
group_name: subgroup1
parents:
- name: parent-group
roles:
- name: role_name1
id: role_id1
- name: role_name2
id: role_id2
delegate_to: localhost
- name: Unmap client role from a group
community.general.keycloak_client_rolemapping:
realm: MyCustomRealm
auth_client_id: admin-cli
auth_keycloak_url: https://auth.example.com/auth
auth_realm: master
auth_username: USERNAME
auth_password: PASSWORD
state: absent
client_id: client1
group_name: group1
roles:
- name: role_name1
id: role_id1
- name: role_name2
id: role_id2
delegate_to: localhost
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
end_state dictionary | Представление сопоставления ролей клиента после выполнения модуля. Пример сокращен. Возвращается: при успехе Пример: |
existing dictionary | Представление существующего сопоставления ролей клиента. Пример сокращен. Возвращается: всегда Пример: |
msg string | Сообщение о выполненном действии. Возвращается: всегда Пример: |
proposed dictionary | Представление предлагаемого сопоставления ролей клиента. Возвращается: всегда Пример: |
Ссылки на коллекцию
© 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_client_rolemapping_module.html