Spec-Zone.ru › Ansible

Модуль community.general.keycloak_identity_provider – Позволяет управлять поставщиками идентификации Keycloak через API Keycloak

Примечание

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

Возможно, эта коллекция уже установлена, если вы используете пакет 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 и администраторский пользователь подойдут, как и отдельное определение клиента с настройками областей, адаптированными к вашим потребностям, и пользователем с ожидаемыми ролями.
  • Имена параметров модуля являются snake_cased версиями camelCase, которые используются в API Keycloak и его документации по адресу https://www.keycloak.org/docs-api/15.0/rest-api/index.html.
END_OF_DOCUMENT_MARKER

Параметры

Параметр

Комментарии

add_read_token_role_on_create

aliases: addReadTokenRoleOnCreate

boolean

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

Варианты:

  • false
  • true

alias

строка / обязательно

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

auth_client_id

строка

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

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

auth_client_secret

строка

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

auth_keycloak_url

aliases: url

строка / обязательно

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

auth_password

aliases: password

строка

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

auth_realm

строка

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

auth_username

aliases: username

строка

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

authenticate_by_default

aliases: authenticateByDefault

boolean

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

Варианты:

  • false
  • true

config

словарь

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

authorizationUrl

строка

Адрес авторизации.

backchannelSupported

строка

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

clientAuthMethod

строка

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

clientId

строка

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

clientSecret

строка

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

defaultScope

строка

Области, которые будут отправлены при запросе авторизации.

entityId

строка

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

gui_order

aliases: guiOrder

целое число

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

hide_on_login_page

aliases: hideOnLoginPage

boolean

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

Варианты:

  • false
  • true
END_OF_DOCUMENT_MARKER

issuer

string

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

jwksUrl

string

URL, где хранятся ключи поставщика идентификации в формате JWK. Подробности см. в спецификации JWK.

logoutUrl

string

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

nameIDPolicyFormat

string

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

principalType

string

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

singleLogoutServiceUrl

string

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

singleSignOnServiceUrl

string

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

sync_mode

aliases: syncMode

string

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

tokenUrl

string

URL токена.

useJwksUrl

boolean

Если переключатель включен, открытые ключи поставщика идентификации будут загружены с указанного URL-адреса JWKS.

Варианты:

  • false
  • true

userInfoUrl

string

URL информации о пользователе.

validateSignature

boolean

Включить/отключить проверку подписи внешних подписей IDP.

Варианты:

  • 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"

state

string

Состояние поставщика идентификации.

В режиме present, поставщик идентификации будет создан, если он еще не существует, или обновлен с предоставленными параметрами.

В режиме absent, поставщик идентификации будет удален, если он существует.

Доступные значения:

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

store_token

aliases: storeToken

boolean

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

Доступные значения:

  • false
  • true

token

string

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

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

trust_email

aliases: trustEmail

boolean

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

Доступные значения:

  • false
  • true

validate_certs

boolean

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

Доступные значения:

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

Атрибуты

Атрибут

Поддержка

Описание

check_mode

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

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

diff_mode

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

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

Значения возврата

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

Ключ

Описание

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–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/general/keycloak_identity_provider_module.html

Spec-Zone.ru

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