Модуль community.general.keycloak_user_federation — управление федерациями пользователей Keycloak с помощью API Keycloak
Примечание
Этот модуль входит в коллекцию community.general (версия 12.6.1).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.general.
Чтобы использовать её в плейбуке, укажите: community.general.keycloak_user_federation.
Добавлено в community.general 3.7.0
Краткое описание
- Этот модуль позволяет добавлять, удалять и изменять федерации пользователей Keycloak с помощью REST API Keycloak. Для этого требуется доступ к REST API с использованием OpenID Connect; подключающийся пользователь и используемый клиент должны обладать необходимыми правами доступа. В стандартной установке Keycloak подойдут admin-cli и пользователь с правами администратора, а также отдельное определение клиента с областью действия, настроенной в соответствии с вашими потребностями, и пользователь с требуемыми ролями.
- Названия параметров модуля представляют собой варианты названий camelCase из API Keycloak и документации к нему, преобразованные в snake_case: https://www.keycloak.org/docs-api/20.0.2/rest-api/index.html.
Параметры
Параметр | Комментарии |
|---|---|
auth_client_id string |
По умолчанию: |
auth_client_secret string | Секрет клиента, используемый вместе с |
auth_keycloak_url псевдонимы: url string / обязательный | URL экземпляра Keycloak. |
auth_password псевдонимы: password string | Пароль для аутентификации при доступе к API. |
auth_realm string | Имя области Keycloak для аутентификации при доступе к API. |
auth_username псевдонимы: username string | Имя пользователя для аутентификации при доступе к API. |
bind_credential_update_mode string добавлено в community.general 9.5.0 | Значение параметра конфигурации Установите значение Установите значение Варианты:
|
config dictionary | Словарь с параметрами конфигурации провайдера; его содержимое зависит от значения Значение |
|
allowKerberosAuthentication boolean |
Включает или отключает HTTP-аутентификацию пользователей с помощью токенов SPNEGO/Kerberos. Данные об аутентифицированных пользователях предоставляются этим сервером LDAP. Варианты:
|
|
allowPasswordAuthentication boolean |
Включает или отключает возможность аутентификации по имени пользователя и паролю в базе данных Kerberos. Варианты:
|
|
authType string |
Тип метода аутентификации, используемого при операции привязки LDAP. Он используется в большинстве запросов, отправляемых на сервер LDAP. Варианты:
|
|
batchSizeForSync integer |
Количество пользователей LDAP, импортируемых из LDAP в Keycloak в рамках одной транзакции. По умолчанию: |
|
bindCredential string |
Пароль администратора LDAP. |
|
bindDn string |
DN пользователя LDAP, который Keycloak использует для доступа к серверу LDAP. |
|
cachePolicy string |
Политика кэширования для этого провайдера хранилища. Варианты:
|
|
changedSyncPeriod integer |
Период синхронизации изменённых или вновь созданных пользователей LDAP в секундах. По умолчанию: |
|
connectionPooling boolean |
Определяет, следует ли Keycloak использовать пул соединений для доступа к серверу LDAP. Варианты:
|
|
connectionPoolingAuthentication string |
Список разделённых пробелами типов аутентификации соединений, которые можно помещать в пул. Варианты:
|
|
connectionPoolingDebug string |
Строка, указывающая уровень выводимой отладочной информации. Примеры допустимых значений: |
|
connectionPoolingInitSize integer |
Количество соединений для каждого идентификатора соединения, создаваемых при первоначальном создании соединения для этого идентификатора. |
|
connectionPoolingMaxSize integer |
Максимальное количество соединений для каждого идентификатора соединения, которые могут одновременно поддерживаться. |
|
connectionPoolingPrefSize integer |
Предпочтительное количество соединений для каждого идентификатора соединения, которое следует поддерживать одновременно. |
|
connectionPoolingProtocol string |
Список разделённых пробелами типов протоколов соединений, которые можно помещать в пул. Допустимые типы: |
|
connectionPoolingTimeout integer |
Количество миллисекунд, в течение которых неактивное соединение может оставаться в пуле, не закрываясь и не удаляясь из него. |
|
connectionTimeout integer |
Время ожидания соединения LDAP в миллисекундах. |
|
connectionUrl string |
URL соединения с сервером LDAP. |
|
customUserSearchFilter string |
Дополнительный фильтр LDAP для фильтрации найденных пользователей. Оставьте поле пустым, если дополнительный фильтр не требуется. |
|
debug boolean |
Включает или отключает вывод отладочных сообщений Krb5LoginModule в стандартный поток вывода. Варианты:
|
|
editMode string |
Варианты:
|
|
enabled boolean |
Включает или отключает эту федерацию пользователей. Варианты:
|
|
evictionDay string |
День недели, в который запись становится недействительной. |
|
evictionHour string |
Час дня, в который запись становится недействительной. |
|
evictionMinute string |
Минута дня, в которую запись становится недействительной. |
|
fullSyncPeriod integer |
Период полной синхронизации в секундах. По умолчанию: |
|
importEnabled boolean |
Если Варианты:
|
|
kerberosRealm string |
Имя области Kerberos. |
|
keyTab string |
Расположение файла Kerberos KeyTab с учётными данными субъекта сервера. Например, |
|
krbPrincipalAttribute string добавлено в community.general 8.1.0 |
Имя атрибута LDAP, соответствующего субъекту Kerberos. Он используется для поиска соответствующего пользователя LDAP после успешной аутентификации Kerberos/SPNEGO в Keycloak. Если значение пустое, пользователь LDAP ищется по имени пользователя LDAP, соответствующему первой части его субъекта Kerberos. Например, для субъекта |
|
maxLifespan integer |
Максимальное время жизни записи кэша в миллисекундах. |
|
pagination boolean |
Поддерживает ли сервер LDAP постраничную выдачу результатов. Варианты:
|
|
priority integer |
Приоритет провайдера при поиске пользователя. Сначала используется наименьший приоритет. По умолчанию: |
|
rdnLDAPAttribute string |
Имя атрибута LDAP, используемого в качестве RDN (верхнего атрибута) типичного DN пользователя. Обычно он совпадает с атрибутом имени пользователя LDAP, но это необязательно. Например, в Active Directory в качестве атрибута RDN часто используется |
|
readTimeout integer |
Время ожидания чтения LDAP в миллисекундах. Это время ожидания применяется к операциям чтения LDAP. |
|
referral string добавлено в community.general 9.5.0 |
Указывает, следует ли переходить по ссылкам LDAP или игнорировать их. Обратите внимание: включение перехода по ссылкам может замедлить аутентификацию, поскольку сервер LDAP сможет определять, какие другие серверы LDAP использовать. Это могут быть потенциально ненадёжные серверы. Варианты:
|
|
searchScope string |
При поиске на одном уровне поиск выполняется только среди пользователей в DN, указанных в параметре User DNs. При поиске в поддереве поиск выполняется во всём поддереве. Дополнительные сведения см. в документации LDAP. Варианты:
|
|
serverPrincipal string |
Полное имя субъекта сервера для службы HTTP, включая имя сервера и домена. Например, |
|
startTls boolean |
Шифрует соединение с LDAP с помощью STARTTLS, что отключает пул соединений. Варианты:
|
|
syncRegistrations boolean |
Следует ли создавать новых пользователей в хранилище LDAP? Приоритет определяет, какой провайдер будет выбран для синхронизации нового пользователя. Варианты:
|
|
trustEmail boolean |
Если параметр включён, адрес электронной почты, предоставленный этим провайдером, не проверяется, даже если верификация включена для области. Варианты:
|
|
updateProfileFirstLogin boolean |
Обновлять профиль при первом входе. Варианты:
|
|
useKerberosForPasswordAuthentication boolean |
Использовать модуль входа Kerberos для проверки имени пользователя и пароля на сервере Kerberos вместо проверки на сервере LDAP с помощью API службы каталогов. Варианты:
|
|
usePasswordModifyExtendedOp boolean |
Использовать расширенную операцию изменения пароля LDAPv3 (RFC-3062). Для выполнения этой операции обычно требуется, чтобы у пользователя LDAP уже был пароль на сервере LDAP. Поэтому при использовании этой операции вместе с параметром «Синхронизация регистрации» может быть полезно также добавить «Сопоставитель атрибутов LDAP с фиксированным значением» со случайно сгенерированным начальным паролем. Варианты:
|
|
usernameLDAPAttribute string |
Имя атрибута LDAP, сопоставленного с именем пользователя Keycloak. Для многих поставщиков серверов LDAP это может быть |
|
userObjectClasses string |
Все значения атрибута objectClass LDAP для пользователей в LDAP, разделённые запятыми. Например, |
|
usersDn string |
Полное DN дерева LDAP, в котором находятся пользователи. Это DN является родительским для пользователей LDAP. |
|
useTruststoreSpi string |
Указывает, использует ли подключение LDAP SPI хранилища доверенных сертификатов с хранилищем, настроенным в standalone.xml/domain.xml. Обратите внимание: даже если standalone.xml/domain.xml не настроен, используется хранилище cacerts Java по умолчанию или сертификат, указанный свойством Варианты:
|
|
uuidLDAPAttribute string |
Имя атрибута LDAP, используемого в качестве уникального идентификатора объекта (UUID) для объектов LDAP. У многих поставщиков серверов LDAP это |
|
validatePasswordPolicy boolean |
Определяет, должен ли Keycloak проверять пароль на соответствие политике паролей области перед его обновлением. Варианты:
|
|
vendor string |
Поставщик LDAP (провайдер). Используйте краткое имя. Например, для «Red Hat Directory Server» укажите |
connection_timeout integer добавлено в community.general 4.5.0 | Задаёт период ожидания HTTP-подключения к API Keycloak (в секундах). По умолчанию: |
http_agent string добавлено в community.general 5.4.0 | Настраивает заголовок HTTP User-Agent. По умолчанию: |
id string | Уникальный идентификатор этого федеративного источника пользователей. Если оставить поле пустым, федеративный источник пользователей будет найден по его |
mappers list / elements=dictionary | Список словарей, определяющих сопоставители, связанные с этим поставщиком идентификации. |
|
config dictionary |
Словарь, задающий параметры конфигурации сопоставителя; его содержимое зависит от значения identityProviderMapper. |
|
id string |
Уникальный идентификатор этого сопоставителя. |
|
name string |
Имя сопоставителя. Если идентификатор не указан, сопоставитель ищется по имени. |
|
parentId string |
Уникальный идентификатор родительского элемента этого сопоставителя. Если поле оставить пустым, автоматически используется идентификатор федеративного источника пользователей. |
|
providerId string |
Тип сопоставителя (например, |
|
providerType string |
Тип компонента для этого сопоставителя. По умолчанию: |
name string | Отображаемое имя поставщика при подключении в консоли администратора. |
parent_id псевдонимы: parentId string | Уникальный идентификатор родительского элемента этого федеративного источника пользователей. Если поле оставить пустым, автоматически используется идентификатор области. |
provider_id псевдонимы: providerId string | Поставщик для этого федеративного источника пользователей. Встроенные поставщики: |
provider_type псевдонимы: providerType string | Тип компонента для федеративного источника пользователей (поддерживается только значение По умолчанию: |
realm string | Область Keycloak, в которой находится этот федеративный источник пользователей. По умолчанию: |
refresh_token string добавлено в community.general 10.3.0 | Токен обновления для аутентификации в API Keycloak. |
remove_unspecified_mappers boolean добавлено в community.general 9.4.0 | Удалять сопоставители, не указанные в конфигурации этого федеративного источника. Установите значение Варианты:
|
state string | Состояние федеративного источника пользователей. При значении При значении Варианты:
|
token string добавлено в community.general 3.0.0 | Токен аутентификации для API Keycloak. |
validate_certs boolean | Проверять сертификаты TLS (не отключайте эту проверку в рабочей среде). Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
action_group | Группа действий: community.general.keycloak добавлено в community.general 10.2.0 | Используйте |
check_mode | Поддержка: полная | Может работать в режиме |
diff_mode | Поддержка: полная | В режиме diff возвращает сведения об изменениях (или о том, что, возможно, потребуется изменить в |
Примеры
- name: Create LDAP user federation
community.general.keycloak_user_federation:
auth_keycloak_url: https://keycloak.example.com/auth
auth_realm: master
auth_username: admin
auth_password: password
realm: my-realm
name: my-ldap
state: present
provider_id: ldap
provider_type: org.keycloak.storage.UserStorageProvider
config:
priority: 0
enabled: true
cachePolicy: DEFAULT
batchSizeForSync: 1000
editMode: READ_ONLY
importEnabled: true
syncRegistrations: false
vendor: other
usernameLDAPAttribute: uid
rdnLDAPAttribute: uid
uuidLDAPAttribute: entryUUID
userObjectClasses: inetOrgPerson, organizationalPerson
connectionUrl: ldaps://ldap.example.com:636
usersDn: ou=Users,dc=example,dc=com
authType: simple
bindDn: cn=directory reader
bindCredential: password
searchScope: 1
validatePasswordPolicy: false
trustEmail: false
useTruststoreSpi: ldapsOnly
connectionPooling: true
pagination: true
allowKerberosAuthentication: false
debug: false
useKerberosForPasswordAuthentication: false
mappers:
- name: "full name"
providerId: "full-name-ldap-mapper"
providerType: "org.keycloak.storage.ldap.mappers.LDAPStorageMapper"
config:
ldap.full.name.attribute: cn
read.only: true
write.only: false
- name: Create Kerberos user federation
community.general.keycloak_user_federation:
auth_keycloak_url: https://keycloak.example.com/auth
auth_realm: master
auth_username: admin
auth_password: password
realm: my-realm
name: my-kerberos
state: present
provider_id: kerberos
provider_type: org.keycloak.storage.UserStorageProvider
config:
priority: 0
enabled: true
cachePolicy: DEFAULT
kerberosRealm: EXAMPLE.COM
serverPrincipal: HTTP/host.example.com@EXAMPLE.COM
keyTab: keytab
allowPasswordAuthentication: false
updateProfileFirstLogin: false
- name: Create sssd user federation
community.general.keycloak_user_federation:
auth_keycloak_url: https://keycloak.example.com/auth
auth_realm: master
auth_username: admin
auth_password: password
realm: my-realm
name: my-sssd
state: present
provider_id: sssd
provider_type: org.keycloak.storage.UserStorageProvider
config:
priority: 0
enabled: true
cachePolicy: DEFAULT
- name: Delete user federation
community.general.keycloak_user_federation:
auth_keycloak_url: https://keycloak.example.com/auth
auth_realm: master
auth_username: admin
auth_password: password
realm: my-realm
name: my-federation
state: absent
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
end_state dictionary | Представление федеративного источника пользователей после выполнения модуля. Возвращается: при успешном выполнении Пример: |
existing dictionary | Представление существующего федеративного источника пользователей. Возвращается: всегда Пример: |
msg string | Сообщение о выполненном действии. Возвращается: всегда Пример: |
proposed dictionary | Представление предлагаемого федеративного источника пользователей. Возвращается: всегда Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/general/keycloak_user_federation_module.html