Spec-Zone.ru › Ansible 2.11

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

Примечание

Этот плагин входит в коллекцию community.general (версия 2.0.1).

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

Для использования в книге задач укажите: community.general.keycloak_clienttemplate.

  • Обзор
  • Параметры
  • Примечания
  • Примеры
  • Значения возврата

Обзор

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

Примечания

Примечание

  • REST API 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–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/general/keycloak_clienttemplate_module.html

Spec-Zone.ru

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