keycloak_clienttemplate - Позволяет администрировать шаблоны клиентов Keycloak через API Keycloak
Новая версия с 2.5.
Обзор
- Этот модуль позволяет администрировать шаблоны клиентов Keycloak через REST API Keycloak. Он требует доступа к REST API через OpenID Connect; у пользователя, подключающегося, и используемого клиента должны быть соответствующие права доступа. В стандартной установке Keycloak admin-cli и административный пользователь будут работать, как и отдельное определение клиента с объемом, настроенным в соответствии с вашими потребностями, и пользователем, имеющим ожидаемые роли.
- Имена опций модуля — это 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 | Включена ли функция "Разрешено полное использование области" для этого шаблона клиента. Это 'fullScopeAllowed' в REST API Keycloak. | ||
| id | Идентификатор шаблона клиента, с которым предстоит работать. Обычно это UUID. | ||
| name | Имя шаблона клиента | ||
| protocol |
| Тип шаблона клиента (либо openid-connect либо saml). | |
| protocol_mappers | Список словарей, определяющих мапперы протоколов для этого шаблона клиента. Это 'protocolMappers' в REST API Keycloak. | ||
| consentRequired | Указывает, требуется ли пользователю предоставить согласие клиенту, чтобы данный маппер был активен. | ||
| consentText | Читаемый человеком текст согласия, который предоставляется пользователю для принятия. | ||
| id | Обычно UUID, указывающий внутренний идентификатор экземпляра этого маппера протоколов. | ||
| name | Имя данного маппера протоколов. | ||
| protocol |
| Должно быть 'openid-connect' или 'saml', это определяет, для какого протокола активен данный маппер протоколов. | |
| protocolMapper | Внутреннее имя Keycloak типа этого маппера протоколов. Поскольку невозможно предоставить исчерпывающий список, поскольку он может быть расширен SPI-интерфейсами пользователем 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Полный список доступных мапперов в вашей установке можно получить на панели администрирования, перейдя в раздел «Информация о сервере» -> «Провайдеры» и выбрав «протокол-маппер». | ||
| config | Словарь, задающий параметры конфигурации для маппера протоколов; содержимое различается в зависимости от значения protocolMapper и не документировано, кроме как источником мапперов и его родительских классов. Пример приведён ниже. Наиболее простой способ получить допустимые значения конфигурации — вывести конфигурацию уже существующего маппера протоколов в режиме проверки в поле "existing". | ||
| 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. См. Поддержка и обслуживание модулей для получения дополнительной информации.
Список других модулей, которые также поддерживаются сообществом Ansible, см. здесь.
Автор
- 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.6/modules/keycloak_clienttemplate_module.html