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 логический тип |
| Включено ли для этого шаблона клиента разрешение "Разрешено полный охват"? Это 'fullScopeAllowed' в REST API Keycloak. | |
| id - | Идентификатор шаблона клиента, над которым нужно работать. Обычно это UUID. | ||
| name - | Имя шаблона клиента | ||
| protocol - |
| Тип шаблона клиента (либо openid-connect или saml. | |
| protocol_mappers - | Список словарей, определяющих мапперы протокола для этого шаблона клиента. Это 'protocolMappers' в REST API Keycloak. | ||
| config - | Словарь, определяющий параметры конфигурации для маппера протокола; содержимое отличается в зависимости от значения protocolMapper и не документировано, кроме как источником мапперов и его родительских классов. Ниже приведен пример. Легче всего получить допустимые значения конфигурации, выведя конфигурацию уже существующего маппера протокола в режиме проверки в поле "existing". | ||
| consentRequired - | Указывает, требуется ли пользователю согласие с клиентом, чтобы этот маппер был активен. | ||
| consentText - | Человекопонятное имя согласия, которое представлено пользователю для принятия. | ||
| id - | Обычно UUID, определяющий внутренний идентификатор экземпляра маппера протокола. | ||
| name - | Имя этого маппера протокола. | ||
| protocol - |
| Это либо 'openid-connect', либо 'saml', это указывает, для какого протокола активен этот маппер протокола. | |
| protocolMapper - | Внутреннее имя Keycloak типа этого маппера протокола. Хотя исчерпывающий список невозможен, так как он может быть расширен с помощью SPIs пользователем Keycloak, по умолчанию Keycloak версии 3.4 поставляется как минимум с docker-v2-allow-all-mapperoidc-address-mapperoidc-full-name-mapperoidc-group-membership-mapperoidc-hardcoded-claim-mapperoidc-hardcoded-role-mapperoidc-role-name-mapperoidc-script-based-protocol-mapperoidc-sha256-pairwise-sub-mapperoidc-usermodel-attribute-mapperoidc-usermodel-client-role-mapperoidc-usermodel-property-mapperoidc-usermodel-realm-role-mapperoidc-usersessionmodel-note-mappersaml-group-membership-mappersaml-hardcode-attribute-mappersaml-hardcode-role-mappersaml-role-list-mappersaml-role-name-mappersaml-user-attribute-mappersaml-user-property-mappersaml-user-session-note-mapperИсчерпывающий список доступных мапперов в вашей установке можно получить на консоли администрирования, перейдя в Информация о сервере -> Поставщики и посмотрев раздел 'protocol-mapper'. | ||
| realm - | Домен, в котором находится этот шаблон клиента. | ||
| state - |
| Состояние шаблона клиента В present, шаблон клиента будет создан (или обновлен, если он уже существует).В absent, шаблон клиента будет удален, если он существует | |
| validate_certs логический тип |
| Проверка 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'} |
Статус
- Данный модуль не гарантирует обратную совместимость. [превью]
- Данный модуль поддерживается сообществом 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.8/modules/keycloak_clienttemplate_module.html