Spec-Zone.ru › Ansible

Модуль community.general.keycloak_clienttemplate – Позволяет администрировать шаблоны клиентов Keycloak через API Keycloak

Примечание

Этот модуль входит в коллекцию community.general (версия 9.5.0).

Вы, возможно, уже установили эту коллекцию, если используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install community.general.

Чтобы использовать её в playbook, укажите: community.general.keycloak_clienttemplate.

  • Описание
  • Параметры
  • Атрибуты
  • Примечания
  • Примеры
  • Возвращаемые значения

Описание

  • Этот модуль позволяет администрировать шаблоны клиентов 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 не всегда проверяет, что используются только корректные настройки — например, вы можете установить настройки, специфичные для SAML, для клиента OpenID Connect, и наоборот. Будьте осторожны. Если вы не указываете настройку, обычно выбирается разумное значение по умолчанию.

Параметры

Параметр

Комментарии

attributes

словарь

Словарь дополнительных атрибутов для этой шаблона клиента. Он может содержать различные параметры конфигурации, но в стандартной установке Keycloak версии 3.4 они не документированы или неизвестны, поэтому обычно он пустой.

auth_client_id

строка

Идентификатор клиента OpenID Connect client_id для аутентификации в API.

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

auth_client_secret

строка

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

auth_keycloak_url

псевдонимы: url

строка / обязательно

URL-адрес экземпляра Keycloak.

auth_password

псевдонимы: password

строка

Пароль для аутентификации с доступом к API.

auth_realm

строка

Имя области Keycloak для аутентификации с доступом к API.

auth_username

псевдонимы: username

строка

Имя пользователя для аутентификации с доступом к API.

connection_timeout

целое число

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

Управляет временем ожидания HTTP-соединений (в секундах) с API Keycloak.

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

description

строка

Описание шаблона клиента в Keycloak.

full_scope_allowed

логическое

Включена ли функция «Разрешить полный объем доступа» для этого шаблона клиента. Это «fullScopeAllowed» в REST API Keycloak.

Варианты:

  • false
  • true

http_agent

строка

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

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

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

id

строка

Идентификатор шаблона клиента для обработки. Обычно это UUID.

name

строка

Название шаблона клиента.

protocol

строка

Тип шаблона клиента.

Значение docker-v2 было добавлено в community.general 8.6.0.

Варианты:

  • "openid-connect"
  • "saml"
  • "docker-v2"

protocol_mappers

список / элементы=словарь

Список словарей, определяющих мапперы протоколов для этого шаблона клиента. Это ‘protocolMappers’ в REST API Keycloak.

config

словарь

Словарь, задающий параметры конфигурации для маппера протокола; его содержимое отличается в зависимости от значения protocol_mappers[].protocolMapper и не документировано, за исключением описания из источника мапперов и его родительских классов. Пример приведён ниже. Проще всего получить допустимые значения конфигурации, выведя конфигурацию уже существующего маппера протокола в режиме проверки (existing).

consentRequired

логическое

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

Варианты:

  • false
  • true

consentText

строка

Человекопонятное имя согласия, которое пользователь должен принять.

id

строка

Обычно UUID, определяющий внутренний ID этой инстанции маппера протокола.

name

строка

Имя этого маппера протокола.

protocol

string

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

Варианты:

  • "openid-connect"
  • "saml"
  • "docker-v2"

protocolMapper

string

Внутреннее имя Keycloak типа этого маппера протокола. Поскольку исчерпывающий список невозможно предоставить, так как он может быть расширен через SPI пользователем Keycloak, по умолчанию Keycloak версии 3.4 поставляется, по крайней мере, с:

docker-v2-allow-all-mapper

oidc-address-mapper

oidc-full-name-mapper

oidc-group-membership-mapper

oidc-hardcoded-claim-mapper

oidc-hardcoded-role-mapper

oidc-role-name-mapper

oidc-script-based-protocol-mapper

oidc-sha256-pairwise-sub-mapper

oidc-usermodel-attribute-mapper

oidc-usermodel-client-role-mapper

oidc-usermodel-property-mapper

oidc-usermodel-realm-role-mapper

oidc-usersessionmodel-note-mapper

saml-group-membership-mapper

saml-hardcode-attribute-mapper

saml-hardcode-role-mapper

saml-role-list-mapper

saml-role-name-mapper

saml-user-attribute-mapper

saml-user-property-mapper

saml-user-session-note-mapper

Полный список доступных мапперов в вашей установке можно получить на консоли администратора, перейдя в Server Info -> Providers и посмотрев раздел ‘protocol-mapper’.

realm

string

Домен, в котором находится этот шаблон клиента.

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

state

string

Состояние шаблона клиента.

В режиме present, шаблон клиента будет создан (или обновлён, если он уже существует).

В режиме absent, шаблон клиента будет удалён, если он существует

Варианты:

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

token

string

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

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

validate_certs

boolean

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

Варианты:

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

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: полная

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

diff_mode

Поддержка: полная

Вернёт подробности о том, что изменилось (или, возможно, нуждается в изменении в check_mode), когда в режиме diff.

Примечания

Примечание

  • API Keycloak REST определяет дополнительные поля (именно bearerOnly, consentRequired, standardFlowEnabled, implicitFlowEnabled, directAccessGrantsEnabled, serviceAccountsEnabled, publicClient, и frontchannelLogout), которые, хотя и доступны с keycloak_client, не оказывают никакого влияния на шаблоны клиентов Keycloak и отбрасываются, если они передаются с запросом API, изменяющим шаблоны клиентов. Поэтому они недоступны через этот модуль.

Примеры

- name: Create or update Keycloak client template (minimal), authentication with credentials
  community.general.keycloak_client:
    auth_client_id: admin-cli
    auth_keycloak_url: https://auth.example.com/auth
    auth_realm: master
    auth_username: USERNAME
    auth_password: PASSWORD
    realm: master
    name: this_is_a_test
  delegate_to: localhost

- name: Create or update Keycloak client template (minimal), authentication with token
  community.general.keycloak_clienttemplate:
    auth_client_id: admin-cli
    auth_keycloak_url: https://auth.example.com/auth
    auth_realm: master
    token: TOKEN
    realm: master
    name: this_is_a_test
  delegate_to: localhost

- name: Delete Keycloak client template
  community.general.keycloak_client:
    auth_client_id: admin-cli
    auth_keycloak_url: https://auth.example.com/auth
    auth_realm: master
    auth_username: USERNAME
    auth_password: PASSWORD
    realm: master
    state: absent
    name: test01
  delegate_to: localhost

- name: Create or update Keycloak client template (with a protocol mapper)
  community.general.keycloak_client:
    auth_client_id: admin-cli
    auth_keycloak_url: https://auth.example.com/auth
    auth_realm: master
    auth_username: USERNAME
    auth_password: PASSWORD
    realm: master
    name: this_is_a_test
    protocol_mappers:
      - config:
          access.token.claim: true
          claim.name: "family_name"
          id.token.claim: true
          jsonType.label: String
          user.attribute: lastName
          userinfo.token.claim: true
        consentRequired: true
        consentText: "${familyName}"
        name: family name
        protocol: openid-connect
        protocolMapper: oidc-usermodel-property-mapper
    full_scope_allowed: false
    id: bce6f5e9-d7d3-4955-817e-c5b7f8d65b3f
  delegate_to: localhost

Значения возврата

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

Ключ

Описание

end_state

словарь

Представление шаблона клиента после выполнения модуля (пример урезан).

Возвращается: при успехе

Пример: {"description": "test01", "fullScopeAllowed": false, "id": "9c3712ab-decd-481e-954f-76da7b006e5f", "name": "test01", "protocol": "saml"}

existing

словарь

Представление существующего шаблона клиента (пример урезан).

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

Пример: {"description": "test01", "fullScopeAllowed": false, "id": "9c3712ab-decd-481e-954f-76da7b006e5f", "name": "test01", "protocol": "saml"}

msg

строка

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

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

Пример: "Client template testclient has been updated"

proposed

словарь

Представление предлагаемого шаблона клиента.

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

Пример: {"name": "test01"}

Авторы

  • Eike Frost (@eikef)

Ссылки на сборку

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

© 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_clienttemplate_module.html

Spec-Zone.ru

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