Spec-Zone.ru › Ansible 2.10

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

Примечание

Этот плагин является частью коллекции community.general (версия 1.3.2).

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

Для использования в книге задач укажите: 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
строка
По умолчанию:
"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
description
строка
Описание шаблона клиента в Keycloak
full_scope_allowed
логический тип
    Варианты:
  • нет
  • да
Включен ли параметр «Разрешено полное охватывание» для этого шаблона клиента. В REST API Keycloak это 'fullScopeAllowed'.
id
строка
Идентификатор шаблона клиента для обработки. Обычно это UUID.
name
строка
Имя шаблона клиента
protocol
строка
    Варианты:
  • openid-connect
  • saml
Тип шаблона клиента (либо openid-connect, либо saml.
protocol_mappers
список / элементы=словарь
Список словарей, определяющих мапперы протоколов для этого шаблона клиента. Это 'protocolMappers' в REST API Keycloak.
config
словарь
Словарь, определяющий параметры конфигурации для маппера протокола; содержимое отличается в зависимости от значения protocolMapper и не документировано, за исключением источника мапперов и его родительского класса(ов). Пример приведён ниже. Лучше всего получить допустимые значения конфигурации, выведя конфигурацию уже существующего маппера протокола в режиме проверки в поле «existing».
consentRequired
логический тип
    Варианты:
  • нет
  • да
Указывает, требуется ли пользователю предоставить согласие клиенту, чтобы этот маппер был активным.
consentText
строка
Текстовое описание согласия, которое представлено пользователю для принятия.
id
строка
Обычно UUID, определяющий внутренний ID этого экземпляра маппера протокола.
name
строка
Имя этого маппера протокола.
protocol
строка
    Варианты:
  • openid-connect
  • saml
либо 'openid-connect', либо 'saml', указывает, для какого протокола этот маппер протокола активен.
protocolMapper
строка
Внутреннее имя Keycloak типа этого маппера протокола. Хотя исчерпывающий список невозможно предоставить, поскольку это может быть расширено через SPIs пользователем 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
строка
По умолчанию:
"master"
Домен, в котором находится этот шаблон клиента.
state
строка
    Варианты:
  • present ←
  • absent
Состояние шаблона клиента
В present, шаблон клиента будет создан (или обновлён, если он уже существует).
В absent, шаблон клиента будет удалён, если он существует
validate_certs
логический тип
    Варианты:
  • нет
  • да ←
Проверять сертификаты TLS (не отключайте это в рабочей среде).

Примечания

Примечание

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

Примеры

- name: Create or update Keycloak client template (minimal)
  local_action:
    module: keycloak_clienttemplate
    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

- name: Delete Keycloak client template
  local_action:
    module: keycloak_clienttemplate
    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

- name: Create or update Keycloak client template (with a protocol mapper)
  local_action:
    module: keycloak_clienttemplate
    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

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

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

Ключ Возвращаемое значение Описание
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
строка
всегда
Сообщение о том, какое действие было выполнено

Пример:
Шаблон клиента testclient был обновлён
proposed
словарь
всегда
Представление предложенных изменений в шаблоне клиента

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


Авторы

  • Eike Frost (@eikef)

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/general/keycloak_clienttemplate_module.html

Spec-Zone.ru

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