Spec-Zone.ru › Ansible 2.5

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

Новая версия с 2.5.

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

Обзор

  • Этот модуль позволяет администрировать шаблоны клиентов Keycloak через REST API Keycloak. Он требует доступа к REST API через OpenID Connect; пользователь, подключающийся, и используемый клиент должны иметь соответствующие права доступа. В стандартной установке Keycloak admin-cli и административный пользователь будут работать, а также отдельное определение клиента со scope, настроенным под ваши нужды, и пользователем с ожидаемыми ролями.
  • Имена параметров модуля — snake_cased версии camelCase, найденные в API Keycloak и его документации по адресу http://www.keycloak.org/docs-api/3.3/rest-api/
  • API Keycloak не всегда накладывает ограничения на использование только разумных настроек — вы можете задавать SAML-специфичные настройки для клиента OpenID Connect и наоборот. Будьте осторожны. Если вы не указываете настройку, обычно выбирается разумное значение по умолчанию.

Параметры

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

Примечания

Примечание

  • Keycloak REST API определяет дополнительные поля (именно 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
словарь
всегда
Представление шаблона клиента после выполнения модуля (пример усечен)

Пример:
{'fullScopeAllowed': False, 'protocol': 'saml', 'id': '9c3712ab-decd-481e-954f-76da7b006e5f', 'name': 'test01', 'description': 'test01'}
existing
словарь
всегда
Представление существующего шаблона клиента (пример усечен)

Пример:
{'fullScopeAllowed': False, 'protocol': 'saml', 'id': '9c3712ab-decd-481e-954f-76da7b006e5f', 'name': 'test01', 'description': 'test01'}
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.5/modules/keycloak_clienttemplate_module.html

Spec-Zone.ru

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