Spec-Zone.ru › Ansible 2.7

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

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

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

Обзор

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

Примечания

Примечание

  • API Keycloak REST определяет дополнительные поля (в частности, 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'}


Статус

  • Этот модуль не гарантирует обратной совместимости интерфейса. [превью]
  • Этот модуль поддерживается сообществом Ansible. [community]

Авторы

  • 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.7/modules/keycloak_clienttemplate_module.html

Spec-Zone.ru

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