Spec-Zone.ru › Ansible

Модуль 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

client_id OpenID Connect для аутентификации в API.

По умолчанию: "admin-cli"

auth_client_secret

string

Секрет клиента, используемый вместе с auth_client_id (если требуется).

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.bindCredential скрывается в ответах Keycloak. При сравнении скрытого значения с требуемым результат всегда не равен. Это означает, что предыдущее и требуемое состояния никогда не совпадают, если параметр задан.

Установите значение always, чтобы включить config.bindCredential в сравнение предыдущего и требуемого состояния. Из-за скрытого значения, возвращаемого Keycloak, модуль всегда обнаруживает изменение и выполняет обновление, если задано значение config.bindCredential.

Установите значение only_indirect, чтобы исключить config.bindCredential при сравнении предыдущего состояния с требуемым. Значение config.bindCredential обновляется только при наличии других изменений в федерации пользователей, требующих обновления.

Варианты:

  • "always" ← (по умолчанию)
  • "only_indirect"

config

dictionary

Словарь с параметрами конфигурации провайдера; его содержимое зависит от значения provider_id. Ниже приведены примеры для ldap, kerberos и sssd. Проще всего получить допустимые значения конфигурации, выгрузив существующую конфигурацию федерации пользователей с помощью режима проверки в поле existing.

Значение sssd поддерживается начиная с community.general 4.2.0.

allowKerberosAuthentication

boolean

Включает или отключает HTTP-аутентификацию пользователей с помощью токенов SPNEGO/Kerberos. Данные об аутентифицированных пользователях предоставляются этим сервером LDAP.

Варианты:

  • false ← (по умолчанию)
  • true

allowPasswordAuthentication

boolean

Включает или отключает возможность аутентификации по имени пользователя и паролю в базе данных Kerberos.

Варианты:

  • false
  • true

authType

string

Тип метода аутентификации, используемого при операции привязки LDAP. Он используется в большинстве запросов, отправляемых на сервер LDAP.

Варианты:

  • "none" ← (по умолчанию)
  • "simple"

batchSizeForSync

integer

Количество пользователей LDAP, импортируемых из LDAP в Keycloak в рамках одной транзакции.

По умолчанию: 1000

bindCredential

string

Пароль администратора LDAP.

bindDn

string

DN пользователя LDAP, который Keycloak использует для доступа к серверу LDAP.

cachePolicy

string

Политика кэширования для этого провайдера хранилища.

Варианты:

  • "DEFAULT" ← (по умолчанию)
  • "EVICT_DAILY"
  • "EVICT_WEEKLY"
  • "MAX_LIFESPAN"
  • "NO_CACHE"

changedSyncPeriod

integer

Период синхронизации изменённых или вновь созданных пользователей LDAP в секундах.

По умолчанию: -1

connectionPooling

boolean

Определяет, следует ли Keycloak использовать пул соединений для доступа к серверу LDAP.

Варианты:

  • false
  • true ← (по умолчанию)

connectionPoolingAuthentication

string

Список разделённых пробелами типов аутентификации соединений, которые можно помещать в пул.

Варианты:

  • "none"
  • "simple"
  • "DIGEST-MD5"

connectionPoolingDebug

string

Строка, указывающая уровень выводимой отладочной информации. Примеры допустимых значений: fine (отслеживать создание и удаление соединений) и all (вся отладочная информация).

connectionPoolingInitSize

integer

Количество соединений для каждого идентификатора соединения, создаваемых при первоначальном создании соединения для этого идентификатора.

connectionPoolingMaxSize

integer

Максимальное количество соединений для каждого идентификатора соединения, которые могут одновременно поддерживаться.

connectionPoolingPrefSize

integer

Предпочтительное количество соединений для каждого идентификатора соединения, которое следует поддерживать одновременно.

connectionPoolingProtocol

string

Список разделённых пробелами типов протоколов соединений, которые можно помещать в пул. Допустимые типы: plain и ssl.

connectionPoolingTimeout

integer

Количество миллисекунд, в течение которых неактивное соединение может оставаться в пуле, не закрываясь и не удаляясь из него.

connectionTimeout

integer

Время ожидания соединения LDAP в миллисекундах.

connectionUrl

string

URL соединения с сервером LDAP.

customUserSearchFilter

string

Дополнительный фильтр LDAP для фильтрации найденных пользователей. Оставьте поле пустым, если дополнительный фильтр не требуется.

debug

boolean

Включает или отключает вывод отладочных сообщений Krb5LoginModule в стандартный поток вывода.

Варианты:

  • false
  • true

editMode

string

READ_ONLY — хранилище LDAP только для чтения. WRITABLE означает, что данные синхронизируются обратно в LDAP по запросу. UNSYNCED означает, что данные пользователя импортируются, но не синхронизируются обратно в LDAP.

Варианты:

  • "READ_ONLY"
  • "WRITABLE"
  • "UNSYNCED"

enabled

boolean

Включает или отключает эту федерацию пользователей.

Варианты:

  • false
  • true ← (по умолчанию)

evictionDay

string

День недели, в который запись становится недействительной.

evictionHour

string

Час дня, в который запись становится недействительной.

evictionMinute

string

Минута дня, в которую запись становится недействительной.

fullSyncPeriod

integer

Период полной синхронизации в секундах.

По умолчанию: -1

importEnabled

boolean

Если true, пользователи LDAP импортируются в базу данных Keycloak и синхронизируются согласно настроенным политикам синхронизации.

Варианты:

  • false
  • true ← (по умолчанию)

kerberosRealm

string

Имя области Kerberos.

keyTab

string

Расположение файла Kerberos KeyTab с учётными данными субъекта сервера. Например, /etc/krb5.keytab.

krbPrincipalAttribute

string

добавлено в community.general 8.1.0

Имя атрибута LDAP, соответствующего субъекту Kerberos. Он используется для поиска соответствующего пользователя LDAP после успешной аутентификации Kerberos/SPNEGO в Keycloak. Если значение пустое, пользователь LDAP ищется по имени пользователя LDAP, соответствующему первой части его субъекта Kerberos. Например, для субъекта john@KEYCLOAK.ORG предполагается, что имя пользователя LDAP — john.

maxLifespan

integer

Максимальное время жизни записи кэша в миллисекундах.

pagination

boolean

Поддерживает ли сервер LDAP постраничную выдачу результатов.

Варианты:

  • false
  • true ← (по умолчанию)

priority

integer

Приоритет провайдера при поиске пользователя. Сначала используется наименьший приоритет.

По умолчанию: 0

rdnLDAPAttribute

string

Имя атрибута LDAP, используемого в качестве RDN (верхнего атрибута) типичного DN пользователя. Обычно он совпадает с атрибутом имени пользователя LDAP, но это необязательно. Например, в Active Directory в качестве атрибута RDN часто используется cn, тогда как атрибутом имени пользователя может быть sAMAccountName.

readTimeout

integer

Время ожидания чтения LDAP в миллисекундах. Это время ожидания применяется к операциям чтения LDAP.

referral

string

добавлено в community.general 9.5.0

Указывает, следует ли переходить по ссылкам LDAP или игнорировать их. Обратите внимание: включение перехода по ссылкам может замедлить аутентификацию, поскольку сервер LDAP сможет определять, какие другие серверы LDAP использовать. Это могут быть потенциально ненадёжные серверы.

Варианты:

  • "ignore"
  • "follow"

searchScope

string

При поиске на одном уровне поиск выполняется только среди пользователей в DN, указанных в параметре User DNs. При поиске в поддереве поиск выполняется во всём поддереве. Дополнительные сведения см. в документации LDAP.

Варианты:

  • "1" ← (по умолчанию)
  • "2"

serverPrincipal

string

Полное имя субъекта сервера для службы HTTP, включая имя сервера и домена. Например, HTTP/host.foo.org@FOO.ORG. Используйте *, чтобы принимать любой субъект службы из файла KeyTab.

startTls

boolean

Шифрует соединение с LDAP с помощью STARTTLS, что отключает пул соединений.

Варианты:

  • false ← (по умолчанию)
  • true

syncRegistrations

boolean

Следует ли создавать новых пользователей в хранилище LDAP? Приоритет определяет, какой провайдер будет выбран для синхронизации нового пользователя.

Варианты:

  • false ← (по умолчанию)
  • true

trustEmail

boolean

Если параметр включён, адрес электронной почты, предоставленный этим провайдером, не проверяется, даже если верификация включена для области.

Варианты:

  • false ← (по умолчанию)
  • true

updateProfileFirstLogin

boolean

Обновлять профиль при первом входе.

Варианты:

  • false
  • true

useKerberosForPasswordAuthentication

boolean

Использовать модуль входа Kerberos для проверки имени пользователя и пароля на сервере Kerberos вместо проверки на сервере LDAP с помощью API службы каталогов.

Варианты:

  • false ← (по умолчанию)
  • true

usePasswordModifyExtendedOp

boolean

Использовать расширенную операцию изменения пароля LDAPv3 (RFC-3062). Для выполнения этой операции обычно требуется, чтобы у пользователя LDAP уже был пароль на сервере LDAP. Поэтому при использовании этой операции вместе с параметром «Синхронизация регистрации» может быть полезно также добавить «Сопоставитель атрибутов LDAP с фиксированным значением» со случайно сгенерированным начальным паролем.

Варианты:

  • false ← (по умолчанию)
  • true

usernameLDAPAttribute

string

Имя атрибута LDAP, сопоставленного с именем пользователя Keycloak. Для многих поставщиков серверов LDAP это может быть uid. Для Active Directory это может быть sAMAccountName или cn. Атрибут должен быть заполнен во всех записях пользователей LDAP, которые нужно импортировать из LDAP в Keycloak.

userObjectClasses

string

Все значения атрибута objectClass LDAP для пользователей в LDAP, разделённые запятыми. Например, inetOrgPerson, organizationalPerson. Созданные пользователи Keycloak записываются в LDAP со всеми этими классами объектов, а существующие записи пользователей LDAP обнаруживаются, только если содержат все эти классы объектов.

usersDn

string

Полное DN дерева LDAP, в котором находятся пользователи. Это DN является родительским для пользователей LDAP.

useTruststoreSpi

string

Указывает, использует ли подключение LDAP SPI хранилища доверенных сертификатов с хранилищем, настроенным в standalone.xml/domain.xml. always означает, что оно используется всегда. never означает, что оно не используется. ldapsOnly означает, что оно используется, если в URL подключения применяется ldaps.

Обратите внимание: даже если standalone.xml/domain.xml не настроен, используется хранилище cacerts Java по умолчанию или сертификат, указанный свойством javax.net.ssl.trustStore.

Варианты:

  • "always"
  • "ldapsOnly" ← (по умолчанию)
  • "never"

uuidLDAPAttribute

string

Имя атрибута LDAP, используемого в качестве уникального идентификатора объекта (UUID) для объектов LDAP. У многих поставщиков серверов LDAP это entryUUID; однако у некоторых используется другое значение. Например, для Active Directory это должно быть objectGUID. Если сервер LDAP не поддерживает UUID, можно использовать любой другой атрибут, который должен быть уникальным среди пользователей LDAP в дереве.

validatePasswordPolicy

boolean

Определяет, должен ли Keycloak проверять пароль на соответствие политике паролей области перед его обновлением.

Варианты:

  • false ← (по умолчанию)
  • true

vendor

string

Поставщик LDAP (провайдер).

Используйте краткое имя. Например, для «Red Hat Directory Server» укажите rhds.

connection_timeout

integer

добавлено в community.general 4.5.0

Задаёт период ожидания HTTP-подключения к API Keycloak (в секундах).

По умолчанию: 10

http_agent

string

добавлено в community.general 5.4.0

Настраивает заголовок HTTP User-Agent.

По умолчанию: "Ansible"

id

string

Уникальный идентификатор этого федеративного источника пользователей. Если оставить поле пустым, федеративный источник пользователей будет найден по его name.

mappers

list / elements=dictionary

Список словарей, определяющих сопоставители, связанные с этим поставщиком идентификации.

config

dictionary

Словарь, задающий параметры конфигурации сопоставителя; его содержимое зависит от значения identityProviderMapper.

id

string

Уникальный идентификатор этого сопоставителя.

name

string

Имя сопоставителя. Если идентификатор не указан, сопоставитель ищется по имени.

parentId

string

Уникальный идентификатор родительского элемента этого сопоставителя. Если поле оставить пустым, автоматически используется идентификатор федеративного источника пользователей.

providerId

string

Тип сопоставителя (например, user-attribute-ldap-mapper).

providerType

string

Тип компонента для этого сопоставителя.

По умолчанию: "org.keycloak.storage.ldap.mappers.LDAPStorageMapper"

name

string

Отображаемое имя поставщика при подключении в консоли администратора.

parent_id

псевдонимы: parentId

string

Уникальный идентификатор родительского элемента этого федеративного источника пользователей. Если поле оставить пустым, автоматически используется идентификатор области.

provider_id

псевдонимы: providerId

string

Поставщик для этого федеративного источника пользователей. Встроенные поставщики: ldap, kerberos и sssd. Также можно использовать пользовательские поставщики хранилища пользователей.

provider_type

псевдонимы: providerType

string

Тип компонента для федеративного источника пользователей (поддерживается только значение org.keycloak.storage.UserStorageProvider).

По умолчанию: "org.keycloak.storage.UserStorageProvider"

realm

string

Область Keycloak, в которой находится этот федеративный источник пользователей.

По умолчанию: "master"

refresh_token

string

добавлено в community.general 10.3.0

Токен обновления для аутентификации в API Keycloak.

remove_unspecified_mappers

boolean

добавлено в community.general 9.4.0

Удалять сопоставители, не указанные в конфигурации этого федеративного источника.

Установите значение false, чтобы сохранить сопоставители, не перечисленные в mappers.

Варианты:

  • false
  • true ← (по умолчанию)

state

string

Состояние федеративного источника пользователей.

При значении present федеративный источник пользователей создаётся, если он ещё не существует, или обновляется с использованием указанных параметров.

При значении absent существующий федеративный источник пользователей удаляется.

Варианты:

  • "present" ← (по умолчанию)
  • "absent"

token

string

добавлено в community.general 3.0.0

Токен аутентификации для API Keycloak.

validate_certs

boolean

Проверять сертификаты TLS (не отключайте эту проверку в рабочей среде).

Варианты:

  • false
  • true ← (по умолчанию)

Атрибуты

Атрибут

Поддержка

Описание

action_group

Группа действий: community.general.keycloak

добавлено в community.general 10.2.0

Используйте group/community.general.keycloak в module_defaults, чтобы задать значения по умолчанию для этого модуля.

check_mode

Поддержка: полная

Может работать в режиме check_mode и возвращать прогноз изменения состояния без изменения целевого объекта.

diff_mode

Поддержка: полная

В режиме diff возвращает сведения об изменениях (или о том, что, возможно, потребуется изменить в check_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

dictionary

Представление федеративного источника пользователей после выполнения модуля.

Возвращается: при успешном выполнении

Пример: {"config": {"allowPasswordAuthentication": "false", "cachePolicy": "DEFAULT", "enabled": "true", "kerberosRealm": "EXAMPLE.COM", "keyTab": "/etc/krb5.keytab", "priority": "0", "serverPrincipal": "HTTP/host.example.com@EXAMPLE.COM", "updateProfileFirstLogin": "false"}, "id": "cf52ae4f-4471-4435-a0cf-bb620cadc122", "mappers": [], "name": "kerberos", "parentId": "myrealm", "providerId": "kerberos", "providerType": "org.keycloak.storage.UserStorageProvider"}

existing

dictionary

Представление существующего федеративного источника пользователей.

Возвращается: всегда

Пример: {"config": {"allowKerberosAuthentication": "false", "authType": "simple", "batchSizeForSync": "1000", "bindCredential": "**********", "bindDn": "cn=directory reader", "cachePolicy": "DEFAULT", "changedSyncPeriod": "-1", "connectionPooling": "true", "connectionUrl": "ldaps://ldap.example.com:636", "debug": "false", "editMode": "READ_ONLY", "enabled": "true", "fullSyncPeriod": "-1", "importEnabled": "true", "pagination": "true", "priority": "0", "rdnLDAPAttribute": "uid", "searchScope": "1", "syncRegistrations": "false", "trustEmail": "false", "useKerberosForPasswordAuthentication": "false", "useTruststoreSpi": "ldapsOnly", "userObjectClasses": "inetOrgPerson, organizationalPerson", "usernameLDAPAttribute": "uid", "usersDn": "ou=Users,dc=example,dc=com", "uuidLDAPAttribute": "entryUUID", "validatePasswordPolicy": "false", "vendor": "other"}, "id": "01122837-9047-4ae4-8ca0-6e2e891a765f", "mappers": [{"config": {"always.read.value.from.ldap": "false", "is.mandatory.in.ldap": "false", "ldap.attribute": "mail", "read.only": "true", "user.model.attribute": "email"}, "id": "17d60ce2-2d44-4c2c-8b1f-1fba601b9a9f", "name": "email", "parentId": "01122837-9047-4ae4-8ca0-6e2e891a765f", "providerId": "user-attribute-ldap-mapper", "providerType": "org.keycloak.storage.ldap.mappers.LDAPStorageMapper"}], "name": "myfed", "parentId": "myrealm", "providerId": "ldap", "providerType": "org.keycloak.storage.UserStorageProvider"}

msg

string

Сообщение о выполненном действии.

Возвращается: всегда

Пример: "No changes required to user federation 164bb483-c613-482e-80fe-7f1431308799."

proposed

dictionary

Представление предлагаемого федеративного источника пользователей.

Возвращается: всегда

Пример: {"config": {"allowKerberosAuthentication": "false", "authType": "simple", "batchSizeForSync": "1000", "bindCredential": "**********", "bindDn": "cn=directory reader", "cachePolicy": "DEFAULT", "connectionPooling": "true", "connectionUrl": "ldaps://ldap.example.com:636", "debug": "false", "editMode": "READ_ONLY", "enabled": "true", "importEnabled": "true", "pagination": "true", "priority": "0", "rdnLDAPAttribute": "uid", "searchScope": "1", "syncRegistrations": "false", "trustEmail": "false", "useKerberosForPasswordAuthentication": "false", "useTruststoreSpi": "ldapsOnly", "userObjectClasses": "inetOrgPerson, organizationalPerson", "usernameLDAPAttribute": "uid", "usersDn": "ou=Users,dc=example,dc=com", "uuidLDAPAttribute": "entryUUID", "validatePasswordPolicy": "false", "vendor": "other"}, "name": "ldap", "providerId": "ldap", "providerType": "org.keycloak.storage.UserStorageProvider"}

Авторы

  • Laurent Paumier (@laurpaum)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Запросить помощь
  • Сообщить об ошибке
  • Запросить новую функцию
  • Связь

© 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

Spec-Zone.ru

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