Модуль community.general.keycloak_authz_permission — Разрешает администрирование разрешений авторизации клиентов Keycloak через API Keycloak
Примечание
Этот модуль входит в коллекцию community.general (версия 9.5.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.general.
Для использования в плейбуке укажите: community.general.keycloak_authz_permission.
Новое в community.general 7.2.0
Описание
- Этот модуль позволяет администрировать разрешения авторизации клиентов Keycloak через REST API Keycloak. Разрешения авторизации доступны только если у клиента включена авторизация.
- Существуют особенности в JSON-путях и payload для разрешений авторизации. В частности, операции POST и PUT направлены на точки доступа к разрешениям, а GET-запросы — на точки доступа к политикам. Для большей сложности JSON-ответы от GET-запросов возвращают данные в формате, отличном от ожидаемого для POST и PUT. В результате невозможно обнаружить изменения таких элементов, как политики, области действия или ресурсы — по крайней мере, без большого количества дополнительных API-вызовов. Поэтому этот модуль всегда обновляет разрешения авторизации вместо попытки определить, действительно ли изменения необходимы.
- Этот модуль требует доступа к REST API через OpenID Connect; пользователь, подключающийся, и используемый домен должны иметь необходимые права доступа. В стандартной установке Keycloak admin-cli и администраторский пользователь будут работать, как и отдельное определение домена с настроенными необходимыми областями действия и пользователем с ожидаемыми ролями.
- Имена параметров модуля — это snake_cased версии camelCase параметров, используемых Keycloak. Пути и payload служб авторизации официально не документированы проектом Keycloak. https://www.puppeteers.net/blog/keycloak-authorization-services-rest-api-paths-and-payload/
Параметры
Параметр | Комментарии |
|---|---|
auth_client_id string | OpenID Connect По умолчанию: |
auth_client_secret string | Секретный ключ клиента для использования совместно с |
auth_keycloak_url aliases: url string / required | URL экземпляра Keycloak. |
auth_password aliases: password string | Пароль для аутентификации доступа к API. |
auth_realm string | Имя области Keycloak для аутентификации доступа к API. |
auth_username aliases: username string | Имя пользователя для аутентификации доступа к API. |
client_id string / required | Идентификатор клиента Keycloak, который должен иметь область авторизации. Обычно это читаемое имя клиента Keycloak. |
connection_timeout integer added in community.general 4.5.0 | Управляет периодом времени ожидания (в секундах) HTTP-соединений с API Keycloak. По умолчанию: |
decision_strategy string | Стратегия принятия решений для данного разрешения. Варианты:
|
description string | Описание разрешения на авторизацию. |
http_agent string added in community.general 5.4.0 | Настраивает заголовок HTTP User-Agent. По умолчанию: |
name string / required | Имя разрешения на авторизацию для создания. |
permission_type string / required | Тип разрешения на авторизацию. На На Варианты:
|
policies list / elements=string | Имена политик для добавления к этому разрешению. По умолчанию: |
realm string / required | Имя области Keycloak, в которой находится клиент Keycloak. |
resources list / elements=string | Имена ресурсов для добавления к этому разрешению. Разрешения на основе области могут включать только один ресурс. Разрешения на основе ресурсов могут включать несколько ресурсов. По умолчанию: |
scopes list / elements=string | Имена областей для добавления к этому разрешению. Разрешения на основе ресурсов не могут иметь связанные с ними области. По умолчанию: |
state string | Состояние разрешения на авторизацию. На На Варианты:
|
token string added in community.general 3.0.0 | Токен аутентификации для API Keycloak. |
validate_certs boolean | Проверять TLS-сертификаты (не отключайте эту функцию в рабочей среде). Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: полная | Может работать в режиме |
diff_mode | Поддержка: нет | В режиме сравнения возвращает информацию о внесенных изменениях (или, возможно, необходимых изменениях в |
Примеры
- name: Manage scope-based Keycloak authorization permission
community.general.keycloak_authz_permission:
name: ScopePermission
state: present
description: Scope permission
permission_type: scope
scopes:
- file:delete
policies:
- Default Policy
client_id: myclient
realm: myrealm
auth_keycloak_url: http://localhost:8080/auth
auth_username: keycloak
auth_password: keycloak
auth_realm: master
- name: Manage resource-based Keycloak authorization permission
community.general.keycloak_authz_permission:
name: ResourcePermission
state: present
description: Resource permission
permission_type: resource
resources:
- Default Resource
policies:
- Default Policy
client_id: myclient
realm: myrealm
auth_keycloak_url: http://localhost:8080/auth
auth_username: keycloak
auth_password: keycloak
auth_realm: master
Значения возврата
Общие значения возврата описаны здесь, следующие поля уникальны для данного модуля:
Ключ | Описание |
|---|---|
end_state complex | Представление разрешения авторизации после выполнения модуля. Возвращается: при успехе |
|
decisionStrategy string | |
|
description string | |
|
id string |
Идентификатор разрешения авторизации. Возвращается: когда Пример: |
|
logic string |
Логика, используемая для разрешения (часть полезной нагрузки, но имеет фиксированное значение). Возвращается: когда Пример: |
|
name string | |
|
policies list / elements=string |
Идентификаторы политик, прикреплённых к этому разрешению. Возвращается: когда Пример: |
|
resources list / elements=string |
Идентификаторы ресурсов, прикреплённых к этому разрешению. Возвращается: когда Пример: |
|
scopes list / elements=string |
Идентификаторы областей, прикреплённых к этому разрешению. Возвращается: когда Пример: |
|
type string | |
msg string | Сообщение об осуществлённом действии. Возвращается: всегда |
Авторы
- Samuli Seppänen (@mattock)
Ссылки на коллекцию
© 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_authz_permission_module.html