community.general.keycloak_user_federation модуль — Позволяет администрировать федерации пользователей Keycloak через API Keycloak
Примечание
Этот модуль входит в коллекцию community.general (версия 9.5.0).
Возможно, эта коллекция уже установлена, если вы используете пакет 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 и административный пользователь будут работать, как и отдельное определение клиента с объемом, настроенным под ваши потребности, и пользователем с ожидаемыми ролями.
- Имена опций модуля — snake_case версии camelCase, встречающиеся в API Keycloak и его документации по адресу https://www.keycloak.org/docs-api/20.0.2/rest-api/index.html.
Параметры
Параметр | Комментарии |
|---|---|
auth_client_id строка | OpenID Connect По умолчанию: |
auth_client_secret строка | Секретный ключ клиента для использования совместно с |
auth_keycloak_url псевдонимы: url строка / обязательно | URL-адрес экземпляра Keycloak. |
auth_password псевдонимы: пароль строка | Пароль для аутентификации с доступом к API. |
auth_realm строка | Имя домена Keycloak для аутентификации с доступом к API. |
auth_username псевдонимы: имя пользователя строка | Имя пользователя для аутентификации с доступом к API. |
bind_credential_update_mode строка добавлено в community.general 9.5.0 | Значение конфигурационного параметра Установите Установите Варианты:
|
config словарь | Словарь, определяющий параметры конфигурации поставщика; содержание отличается в зависимости от значения Значение |
|
allowKerberosAuthentication логическое значение |
Включить/отключить HTTP-аутентификацию пользователей с токенами SPNEGO/Kerberos. Данные об аутентифицированных пользователях будут получены с этого сервера LDAP. Варианты:
|
|
allowPasswordAuthentication логическое значение |
Включить/отключить возможность аутентификации с именем пользователя/паролем по отношению к базе данных Kerberos. Варианты:
|
|
authType строка |
Тип метода аутентификации, используемого во время операции привязки LDAP. Он используется в большинстве запросов, отправляемых на сервер LDAP. Варианты:
|
|
batchSizeForSync целое число |
Количество пользователей LDAP, которые должны быть импортированы из LDAP в Keycloak в рамках одной транзакции. По умолчанию: |
|
bindCredential строка |
Пароль администратора LDAP. |
|
bindDn строка |
DN пользователя LDAP, который будет использоваться Keycloak для доступа к серверу LDAP. |
|
cachePolicy строка |
Политика кэширования для этого поставщика хранилища. Варианты:
|
|
changedSyncPeriod целое число |
Период синхронизации изменённых или вновь созданных пользователей LDAP в секундах. По умолчанию: |
|
connectionPooling логическое значение |
Определяет, будет ли 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 строка добавлен в community.general 8.1.0 |
Имя атрибута LDAP, который ссылается на Kerberos-принципал. Используется для поиска соответствующего пользователя LDAP после успешной аутентификации Kerberos/SPNEGO в Keycloak. Если этот параметр пуст, пользователь LDAP будет найден по имени пользователя LDAP, соответствующему первой части его Kerberos-принципала. Например, для принципала |
|
maxLifespan целое число |
Максимальное время жизни записи кэша в миллисекундах. |
|
pagination булево |
Поддерживает ли сервер LDAP пагинацию. Варианты:
|
|
priority целое число |
Приоритет поставщика при поиске пользователя. Наименьший сначала. По умолчанию: |
|
rdnLDAPAttribute строка |
Имя атрибута LDAP, используемого в качестве RDN (верхнего атрибута) типичного DN пользователя. Обычно оно совпадает с атрибутом имени пользователя LDAP, однако это необязательно. Например, для Active Directory обычно используется |
|
readTimeout целое число |
Тайм-аут чтения LDAP в миллисекундах. Этот тайм-аут применяется для операций чтения LDAP. |
|
referral строка добавлен в community.general 9.5.0 |
Указывает, следует ли следовать ссылкам LDAP или игнорировать их. Обратите внимание, что включение ссылок может замедлить аутентификацию, так как это позволяет серверу LDAP решать, какие другие серверы LDAP использовать. Это потенциально может включать ненадежные серверы. Варианты:
|
|
searchScope строка |
Для одного уровня поиск применяется только для пользователей в DN, указанных в User DNs. Для поддерева поиск применяется ко всему поддереву. Для получения дополнительной информации см. документацию LDAP. Варианты:
|
|
serverPrincipal строка |
Полное имя серверного принципала для HTTP-сервиса, включая сервер и доменное имя. Например, |
|
startTls булево |
Шифрует соединение с LDAP с помощью STARTTLS, что отключит кэширование соединений. Варианты:
|
|
syncRegistrations булево |
Создавать ли новых пользователей в хранилище LDAP? Приоритет влияет на то, какой поставщик выбран для синхронизации нового пользователя. Варианты:
|
|
trustEmail булево |
Если включено, электронная почта, предоставленная этим поставщиком, не проверяется, даже если проверка включена для домена. Варианты:
|
|
updateProfileFirstLogin булево |
Обновить профиль при первой авторизации. Варианты:
|
|
useKerberosForPasswordAuthentication булево |
Использовать модуль входа Kerberos для аутентификации имени пользователя/пароля на сервере Kerberos вместо аутентификации на сервере LDAP с помощью API службы каталогов. Варианты:
|
|
usePasswordModifyExtendedOp булево |
Использовать расширенную операцию изменения пароля LDAPv3 (RFC-3062). Расширенная операция изменения пароля обычно требует, чтобы у пользователя LDAP уже был пароль на сервере LDAP. Поэтому при использовании с «Sync Registrations» можно также добавить «Hardcoded LDAP attribute mapper» со случайно сгенерированным начальным паролем. Варианты:
|
|
usernameLDAPAttribute строка |
Имя атрибута LDAP, отображаемого как имя пользователя Keycloak. Для многих поставщиков серверов LDAP это может быть |
|
userObjectClasses string |
Все значения атрибута LDAP objectClass для пользователей в LDAP, разделенные запятыми. Например |
|
usersDn string |
Полный DN дерева LDAP, где находятся ваши пользователи. Этот DN является родителем пользователей LDAP. |
|
useTruststoreSpi string |
Указывает, будет ли подключение LDAP использовать SPI хранилища доверенных сертификатов с хранилищем доверенных сертификатов, настроенным в standalone.xml/domain.xml. Варианты:
|
|
uuidLDAPAttribute string |
Имя атрибута LDAP, используемого в качестве уникального идентификатора объекта (UUID) для объектов в LDAP. Для многих поставщиков серверов LDAP это |
|
validatePasswordPolicy boolean |
Определяет, должен ли Keycloak проверять пароль по политике пароля домена перед его обновлением. Варианты:
|
|
vendor string |
Поставщик LDAP (провайдер). Используйте короткое имя. Например, напишите |
connection_timeout integer added in community.general 4.5.0 | Управляет временем ожидания подключений HTTP (в секундах) к API Keycloak. По умолчанию: |
http_agent string added in 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 aliases: parentId string | Уникальный идентификатор родительской федерации пользователей. Идентификатор домена будет автоматически использован, если поле оставлено пустым. |
provider_id aliases: providerId string | Поставщик для этой федерации пользователей. Встроенные поставщики — |
provider_type aliases: providerType string | Тип компонента для федерации пользователей (поддерживается только значение По умолчанию: |
realm string | Область 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-сертификатов (не отключайте это в производственной среде). Выбор:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: полная | Может работать в |
diff_mode | Поддержка: полная | Вернет подробности о том, что изменилось (или, возможно, нуждается в изменении в |
Примеры
- 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 словарь | Представление федерации пользователей после выполнения модуля. Возвращается: при успехе Пример: |
existing словарь | Представление существующей федерации пользователей. Возвращается: всегда Пример: |
msg строка | Сообщение о произведённом действии. Возвращается: всегда Пример: |
proposed словарь | Представление предлагаемой федерации пользователей. Возвращается: всегда Пример: |
Ссылки на сборку
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/general/keycloak_user_federation_module.html