Модуль community.general.keycloak_authentication_v2 — настройка потоков аутентификации в Keycloak идемпотентным и безопасным способом.
Примечание
Этот модуль входит в коллекцию community.general (версия 12.6.1).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните команду ansible-galaxy collection list.
Чтобы установить её, используйте: ansible-galaxy collection install community.general.
Чтобы использовать её в плейбуке, укажите: community.general.keycloak_authentication_v2.
Новое в community.general 12.5.0
Краткое описание
- Этот модуль позволяет создавать, удалять и изменять потоки аутентификации Keycloak с помощью REST API Keycloak.
- Вместо изменения существующего потока на месте модуль пересоздаёт его с помощью описанного ниже механизма безопасной замены.
- Механизм безопасной замены — когда необходимо обновить поток аутентификации, модуль никогда не изменяет существующий поток на месте. Вместо этого он выполняет многоэтапную процедуру замены, чтобы во время обновления поток никогда не оставался в промежуточном или небезопасном состоянии. Это особенно важно, если поток активно привязан к привязке области, переопределению клиента или используется в качестве потока входа либо последующего потока поставщика удостоверений, поскольку частично обновлённый поток может непреднамеренно предоставить несанкционированный доступ.
-
Механизм безопасной замены работает следующим образом. 1. Создаётся новый поток с временным именем (исходный псевдоним плюс настраиваемый суффикс, например
myflow_tmp_for_swap). 2. В новый временный поток добавляются все выполнения и их конфигурации. 3. Если существующий поток в данный момент привязан к области или клиенту, все привязки перенаправляются на новый временный поток. Это обеспечивает непрерывность и позволяет избежать разрыва активного покрытия аутентификацией. 4. Старый поток удаляется. 5. Временному потоку присваивается исходный псевдоним, восстанавливая ожидаемое имя. -
Обработка ранее созданных временных потоков замены — если временный поток замены уже существует (например, после прерванного предыдущего запуска), модуль может при необходимости удалить его перед продолжением. Это поведение управляется параметром
force_temporary_swap_flow_deletion. Если параметр имеет значениеfalseи временный поток уже существует, модуль завершится с ошибкой, чтобы предотвратить случайную потерю данных. - Идемпотентность — если существующий поток уже соответствует требуемой конфигурации, изменения не вносятся. Перед тем как решить, следует ли запускать процедуру безопасной замены, модуль сравнивает нормализованное представление существующего потока с требуемым состоянием.
- Поддерживается глубина вложенности до 4 подпотоков.
Параметры
Параметр | Комментарии |
|---|---|
alias string / обязательный | Имя потока аутентификации. |
auth_client_id string |
По умолчанию: |
auth_client_secret string | Секрет клиента, используемый вместе с |
auth_keycloak_url псевдонимы: url string / обязательный | URL экземпляра Keycloak. |
auth_password псевдонимы: password string | Пароль для аутентификации при доступе к API. |
auth_realm string | Имя realm Keycloak для аутентификации при доступе к API. |
auth_username псевдонимы: username string | Имя пользователя для аутентификации при доступе к API. |
authenticationExecutions list / элементы=dictionary | Требуемая конфигурация выполнений для потока. Выполнения корневого уровня. |
|
authenticationConfig dictionary |
Конфигурация выполнения. |
|
alias string / обязательный |
Имя конфигурации выполнения. |
|
config dictionary / обязательный |
Параметры конфигурации выполнения. |
|
authenticationExecutions list / элементы=dictionary |
Конфигурация выполнений для выполнений внутри вложенного потока. Выполнения вложенного уровня 1. |
|
authenticationConfig dictionary |
Конфигурация выполнения. |
|
alias string / обязательный |
Имя конфигурации выполнения. |
|
config dictionary / обязательный |
Параметры конфигурации выполнения. |
|
authenticationExecutions list / элементы=dictionary |
Конфигурация выполнений для выполнений внутри вложенного потока. Выполнения вложенного уровня 2. |
|
authenticationConfig dictionary |
Конфигурация выполнения. |
|
alias string / обязательный |
Имя конфигурации выполнения. |
|
config dictionary / обязательный |
Параметры конфигурации выполнения. |
|
authenticationExecutions list / элементы=dictionary |
Конфигурация выполнений для выполнений внутри вложенного потока. Выполнения вложенного уровня 3. |
|
authenticationConfig dictionary |
Конфигурация выполнения. |
|
alias string / обязательный |
Имя конфигурации выполнения. |
|
config dictionary / обязательный |
Параметры конфигурации выполнения. |
|
authenticationExecutions list / элементы=dictionary |
Конфигурация выполнений для выполнений внутри вложенного потока. Выполнения вложенного уровня 4 (последний вложенный уровень). |
|
authenticationConfig dictionary |
Конфигурация выполнения. |
|
alias string / обязательный |
Имя конфигурации выполнения. |
|
config dictionary / обязательный |
Параметры конфигурации выполнения. |
|
providerId string / обязательный |
|
|
requirement string / обязательный |
Статус обязательности выполнения или вложенного потока. Варианты:
|
|
providerId string |
|
|
requirement string / обязательный |
Статус обязательности выполнения или вложенного потока. Варианты:
|
|
subFlow string |
Имя вложенного потока. |
|
subFlowType string |
Тип вложенного потока. Варианты:
|
|
providerId string |
|
|
requirement string / обязательный |
Статус обязательности выполнения или вложенного потока. Варианты:
|
|
subFlow string |
Имя вложенного потока. |
|
subFlowType string |
Тип вложенного потока. Варианты:
|
|
providerId string |
|
|
requirement string / обязательный |
Статус обязательности выполнения или вложенного потока. Варианты:
|
|
subFlow string |
Имя вложенного потока. |
|
subFlowType string |
Тип вложенного потока. Варианты:
|
|
providerId string |
|
|
requirement string / обязательный |
Статус обязательности выполнения или вложенного потока. Варианты:
|
|
subFlow string |
Имя вложенного потока. |
|
subFlowType string |
Тип вложенного потока. Варианты:
|
connection_timeout integer добавлено в community.general 4.5.0 | Задает время ожидания HTTP-соединения с API Keycloak (в секундах). По умолчанию: |
description string | Понятное пользователю описание потока. |
force_temporary_swap_flow_deletion boolean | Если Задайте Варианты:
|
http_agent string добавлено в community.general 5.4.0 | Настраивает заголовок HTTP User-Agent. По умолчанию: |
providerId string |
Варианты:
|
realm string / обязательный | Имя realm, в котором находится поток аутентификации. |
refresh_token string добавлено в community.general 10.3.0 | Токен обновления аутентификации для API Keycloak. |
state string | Должен ли поток аутентификации существовать. Варианты:
|
temporary_swap_flow_suffix string | Суффикс, добавляемый к псевдониму временного потока, созданного во время обновления Safe Swap. Временный поток существует только во время процедуры подмены и переименовывается в исходный псевдоним после успешного переноса всех привязок. По умолчанию: |
token string добавлено в community.general 3.0.0 | Токен аутентификации для API Keycloak. |
validate_certs boolean | Проверять TLS-сертификаты (не отключайте эту проверку в рабочей среде). Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
action_group | Группа действий: community.general.keycloak | Используйте |
check_mode | Поддержка: полная | Может выполняться в режиме |
diff_mode | Поддержка: полная | Возвращает сведения об изменениях (или возможных изменениях в |
Примеры
- name: Create or modify the 'My Login Flow'.
community.general.keycloak_authentication_v2:
auth_keycloak_url: http://localhost:8080/auth
auth_realm: master
auth_username: admin
auth_password: password
realm: master
alias: My Login Flow
authenticationExecutions:
- providerId: idp-review-profile
requirement: REQUIRED
authenticationConfig:
alias: My Login Flow - review profile config
config:
update.profile.on.first.login: "missing"
- subFlow: My Login Flow - User creation or linking
requirement: REQUIRED
authenticationExecutions:
- providerId: idp-create-user-if-unique
requirement: ALTERNATIVE
authenticationConfig:
alias: My Login Flow - create unique user config
config:
require.password.update.after.registration: "true"
- providerId: auth-cookie
requirement: REQUIRED
- subFlow: My Login Flow - Handle Existing Account
requirement: ALTERNATIVE
authenticationExecutions:
- providerId: idp-confirm-link
requirement: REQUIRED
- providerId: auth-cookie
requirement: DISABLED
state: present
- name: Remove an authentication flow.
community.general.keycloak_authentication_v2:
auth_keycloak_url: http://localhost:8080/auth
auth_realm: master
auth_username: admin
auth_password: password
realm: master
alias: My Login Flow
state: absent
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
end_state 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_authentication_v2_module.html