Spec-Zone.ru › Ansible

Модуль community.general.keycloak_identity_provider — позволяет управлять поставщиками удостоверений Keycloak с помощью API Keycloak

Примечание

Этот модуль входит в коллекцию community.general (версия 12.6.1).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Чтобы установить её, используйте: ansible-galaxy collection install community.general.

Чтобы использовать её в плейбуке, укажите: community.general.keycloak_identity_provider.

Добавлено в community.general 3.6.0

  • Краткое описание
  • Параметры
  • Атрибуты
  • Примеры
  • Возвращаемые значения

Краткое описание

  • Этот модуль позволяет добавлять, удалять и изменять поставщиков удостоверений Keycloak с помощью REST API Keycloak. Для этого требуется доступ к REST API через OpenID Connect; подключающийся пользователь и используемый клиент должны иметь необходимые права доступа. В стандартной установке Keycloak подойдут admin-cli и пользователь admin, а также отдельное определение клиента с областью действия, настроенной в соответствии с вашими потребностями, и пользователь с необходимыми ролями.
  • Названия параметров модуля представляют собой версии в snake_case названий в camelCase, используемых в API Keycloak и его документации по адресу https://www.keycloak.org/docs-api/15.0/rest-api/index.html.

Параметры

Параметр

Комментарии

add_read_token_role_on_create

aliases: addReadTokenRoleOnCreate

boolean

Включает или отключает возможность чтения новых пользователями любых сохранённых токенов. Назначает роль broker.read-token.

Варианты:

  • false
  • true

alias

string / обязательный

Псевдоним уникально идентифицирует поставщика удостоверений и также используется для формирования URI перенаправления.

auth_client_id

string

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

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

auth_client_secret

string

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

auth_keycloak_url

aliases: url

string / обязательный

URL экземпляра Keycloak.

auth_password

aliases: password

string

Пароль для аутентификации при доступе к API.

auth_realm

string

Имя области Keycloak для аутентификации при доступе к API.

auth_username

aliases: username

string

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

authenticate_by_default

aliases: authenticateByDefault

boolean

Определяет, следует ли использовать этого поставщика удостоверений для аутентификации по умолчанию до отображения экрана входа.

Варианты:

  • false
  • true

config

dictionary

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

authorizationUrl

string

URL авторизации.

backchannelSupported

string

Поддерживает ли внешний поставщик удостоверений выход из системы через обратный канал?

clientAuthMethod

string

Метод аутентификации клиента.

clientId

string

Клиент или идентификатор клиента, зарегистрированный у поставщика удостоверений.

clientSecret

string

Клиент или секрет клиента, зарегистрированный у поставщика удостоверений.

defaultScope

string

Области действия, передаваемые при запросе авторизации.

entityId

string

Идентификатор сущности, используемый для уникальной идентификации этого поставщика услуг SAML.

fromUrl

string

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

URL общедоступной конфигурации OpenID Connect поставщика удостоверений.

Поддерживается только provider_id=oidc.

config.fromUrl не может использоваться одновременно с config.userInfoUrl, config.authorizationUrl, config.tokenUrl, config.logoutUrl, config.issuer и config.jwksUrl.

gui_order

aliases: guiOrder

integer

Число, задающее порядок отображения поставщика в графическом интерфейсе (например, на странице входа).

hide_on_login_page

aliases: hideOnLoginPage

boolean

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

Варианты:

  • false
  • true

issuer

string

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

jwksUrl

string

URL хранилища ключей поставщика удостоверений в формате JWK. Дополнительные сведения см. в спецификации JWK.

logoutUrl

string

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

nameIDPolicyFormat

string

Указывает ссылку URI, соответствующую формату идентификатора имени.

principalType

string

Способ идентификации и отслеживания внешних пользователей по утверждению.

singleLogoutServiceUrl

string

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

singleSignOnServiceUrl

string

URL, используемый для отправки запросов аутентификации (SAML AuthnRequest).

sync_mode

aliases: syncMode

string

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

tokenUrl

string

URL токена.

useJwksUrl

boolean

Если true, открытые ключи поставщика удостоверений загружаются с указанного URL JWKS.

Варианты:

  • false
  • true

userInfoUrl

string

URL сведений о пользователе.

validateSignature

boolean

Включает или отключает проверку подписей внешнего поставщика удостоверений.

Варианты:

  • false
  • true

connection_timeout

integer

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

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

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

display_name

aliases: displayName

string

Понятное имя поставщика удостоверений.

enabled

boolean

Включает или отключает этого поставщика удостоверений.

Варианты:

  • false
  • true

first_broker_login_flow_alias

aliases: firstBrokerLoginFlowAlias

string

Псевдоним потока аутентификации, запускаемого после первого входа через этого поставщика удостоверений.

http_agent

string

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

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

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

link_only

aliases: linkOnly

boolean

Если значение равно true, пользователи не могут входить через этого поставщика. Они могут только связать учетную запись с этим поставщиком. Это полезно, если вход через поставщика не требуется, но нужна интеграция с ним.

Варианты:

  • false
  • true

mappers

list / elements=dictionary

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

config

dictionary

Словарь с параметрами конфигурации сопоставителя; его содержимое зависит от значения mappers[].identityProviderMapper.

id

string

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

identityProviderAlias

string

Псевдоним поставщика удостоверений для этого сопоставителя.

identityProviderMapper

string

Тип сопоставителя.

name

string

Имя сопоставителя.

post_broker_login_flow_alias

aliases: postBrokerLoginFlowAlias

string

Псевдоним потока аутентификации, запускаемого после каждого входа через этого поставщика удостоверений.

provider_id

aliases: providerId

string

Протокол, используемый этим поставщиком (поддерживаемые значения: oidc или saml).

realm

string

Область Keycloak, в которой находится этот поставщик удостоверений.

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

refresh_token

string

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

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

state

string

Состояние поставщика удостоверений.

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

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

Варианты:

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

store_token

aliases: storeToken

boolean

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

Варианты:

  • false
  • true

token

string

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

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

trust_email

aliases: trustEmail

boolean

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

Варианты:

  • false
  • true

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 OIDC identity provider, authentication with credentials
  community.general.keycloak_identity_provider:
    state: present
    auth_keycloak_url: https://auth.example.com/auth
    auth_realm: master
    auth_username: admin
    auth_password: admin
    realm: myrealm
    alias: oidc-idp
    display_name: OpenID Connect IdP
    enabled: true
    provider_id: oidc
    config:
      issuer: https://idp.example.com
      authorizationUrl: https://idp.example.com/auth
      tokenUrl: https://idp.example.com/token
      userInfoUrl: https://idp.example.com/userinfo
      clientAuthMethod: client_secret_post
      clientId: my-client
      clientSecret: secret
      syncMode: FORCE
    mappers:
      - name: first_name
        identityProviderMapper: oidc-user-attribute-idp-mapper
        config:
          claim: first_name
          user.attribute: first_name
          syncMode: INHERIT
      - name: last_name
        identityProviderMapper: oidc-user-attribute-idp-mapper
        config:
          claim: last_name
          user.attribute: last_name
          syncMode: INHERIT

- name: Create OIDC identity provider, with well-known configuration URL
  community.general.keycloak_identity_provider:
    state: present
    auth_keycloak_url: https://auth.example.com/auth
    auth_realm: master
    auth_username: admin
    auth_password: admin
    realm: myrealm
    alias: oidc-idp
    display_name: OpenID Connect IdP
    enabled: true
    provider_id: oidc
    config:
      fromUrl: https://the-idp.example.com/auth/realms/idprealm/.well-known/openid-configuration
      clientAuthMethod: client_secret_post
      clientId: my-client
      clientSecret: secret

- name: Create SAML identity provider, authentication with credentials
  community.general.keycloak_identity_provider:
    state: present
    auth_keycloak_url: https://auth.example.com/auth
    auth_realm: master
    auth_username: admin
    auth_password: admin
    realm: myrealm
    alias: saml-idp
    display_name: SAML IdP
    enabled: true
    provider_id: saml
    config:
      entityId: https://auth.example.com/auth/realms/myrealm
      singleSignOnServiceUrl: https://idp.example.com/login
      wantAuthnRequestsSigned: true
      wantAssertionsSigned: true
    mappers:
      - name: roles
        identityProviderMapper: saml-user-attribute-idp-mapper
        config:
          user.attribute: roles
          attribute.friendly.name: User Roles
          attribute.name: roles
          syncMode: INHERIT

- name: Create OIDC identity provider, authentication with credentials and advanced claim to group
  community.general.keycloak_identity_provider:
    state: present
    auth_keycloak_url: https://auth.example.com/auth
    auth_realm: master
    auth_username: admin
    auth_password: admin
    realm: myrealm
    alias: oidc-idp
    display_name: OpenID Connect IdP
    enabled: true
    provider_id: oidc
    config:
      issuer: https://idp.example.com
      authorizationUrl: https://idp.example.com/auth
      tokenUrl: https://idp.example.com/token
      userInfoUrl: https://idp.example.com/userinfo
      clientAuthMethod: client_secret_post
      clientId: my-client
      clientSecret: secret
      syncMode: FORCE
    mappers:
      - name: group_name
        identityProviderMapper: oidc-advanced-group-idp-mapper
        config:
          claims: '[{"key":"my_key","value":"my_value"}]'
          group: group_name
          syncMode: INHERIT

Возвращаемые значения

Общие возвращаемые значения описаны здесь, ниже перечислены поля, уникальные для этого модуля:

Ключ

Описание

end_state

словарь

Представление поставщика удостоверений после выполнения модуля.

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

Пример: {"addReadTokenRoleOnCreate": false, "alias": "my-idp", "authenticateByDefault": false, "config": {"authorizationUrl": "https://idp.example.com/auth", "clientAuthMethod": "client_secret_post", "clientId": "my-client", "clientSecret": "**********", "issuer": "https://idp.example.com", "tokenUrl": "https://idp.example.com/token", "userInfoUrl": "https://idp.example.com/userinfo"}, "displayName": "OpenID Connect IdP", "enabled": true, "firstBrokerLoginFlowAlias": "first broker login", "internalId": "4d28d7e3-1b80-45bb-8a30-5822bf55aa1c", "linkOnly": false, "providerId": "oidc", "storeToken": false, "trustEmail": false}

existing

словарь

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

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

Пример: {"addReadTokenRoleOnCreate": false, "alias": "my-idp", "authenticateByDefault": false, "config": {"authorizationUrl": "https://old.example.com/auth", "clientAuthMethod": "client_secret_post", "clientId": "my-client", "clientSecret": "**********", "issuer": "https://old.example.com", "syncMode": "FORCE", "tokenUrl": "https://old.example.com/token", "userInfoUrl": "https://old.example.com/userinfo"}, "displayName": "OpenID Connect IdP", "enabled": true, "firstBrokerLoginFlowAlias": "first broker login", "internalId": "4d28d7e3-1b80-45bb-8a30-5822bf55aa1c", "linkOnly": false, "providerId": "oidc", "storeToken": false, "trustEmail": false}

msg

строка

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

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

Пример: "Identity provider my-idp has been created"

proposed

словарь

Представление предлагаемого поставщика удостоверений.

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

Пример: {"config": {"authorizationUrl": "https://idp.example.com/auth", "clientAuthMethod": "client_secret_post", "clientId": "my-client", "clientSecret": "secret", "issuer": "https://idp.example.com", "tokenUrl": "https://idp.example.com/token", "userInfoUrl": "https://idp.example.com/userinfo"}, "displayName": "OpenID Connect IdP", "providerId": "oidc"}

Авторы

  • 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_identity_provider_module.html

Spec-Zone.ru

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