Spec-Zone.ru › Ansible

community.general.keycloak_clientscope модуль – Позволяет администрировать Keycloak client_scopes через Keycloak API

Примечание

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

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

Для установки используйте: ansible-galaxy collection install community.general.

Чтобы использовать его в книге задач, укажите: community.general.keycloak_clientscope.

Новое в community.general 3.4.0

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

Описание

  • Этот модуль позволяет добавлять, удалять или изменять Keycloak client_scopes через REST API Keycloak. Он требует доступа к REST API через OpenID Connect; пользователь, подключающийся, и используемый клиент должны иметь необходимые права доступа. В стандартной установке Keycloak admin-cli и администраторский пользователь будут работать, как и отдельное определение клиента со scope, настроенным под ваши нужды, и пользователь, имеющий соответствующие роли.
  • Имена опций модуля являются snake_cased версиями camelCase имён, найденных в Keycloak API и его документации по адресу https://www.keycloak.org/docs-api/8.0/rest-api/index.html.
  • Атрибуты являются многозначными в Keycloak API. Все атрибуты являются списками отдельных значений и будут возвращаться модулем таким же образом. Вы можете передавать отдельные значения для атрибутов при вызове модуля, и это будет преобразовано в список, подходящий для API.
  • При обновлении client_scope, где это возможно, предоставьте ID client_scope модулю. Это исключает поиск в API для перевода имени в ID client_scope.

Параметры

Параметр

Комментарии

attributes

словарь

Словарь пар ключ-значение для задания пользовательских атрибутов для client_scope.

Значения могут быть одиночными (например, строка) или списком строк.

auth_client_id

строка

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

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

auth_client_secret

строка

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

auth_keycloak_url

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

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

URL сервера Keycloak.

auth_password

псевдонимы: пароль

строка

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

auth_realm

строка

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

auth_username

псевдонимы: имя пользователя

строка

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

connection_timeout

целое число

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

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

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

description

строка

Описание этого client_scope.

Этот параметр не обязателен для обновления или удаления client_scope.

http_agent

строка

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

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

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

id

строка

Уникальный идентификатор этого client_scope.

Этот параметр не обязателен для обновления или удаления client_scope, но его предоставление уменьшит количество API-запросов.

name

строка

Имя client_scope.

Этот параметр требуется только при создании или обновлении client_scope.

protocol

строка

Тип клиента.

Значение docker-v2 было добавлено в community.general 8.6.0.

Варианты:

  • "openid-connect"
  • "saml"
  • "wsfed"
  • "docker-v2"

protocol_mappers

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

список / элементы=словарь

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

Это ‘protocolMappers’ в API Keycloak.

config

словарь

Словарь, определяющий параметры конфигурации для протокольного маппера; содержание отличается в зависимости от значения protocol_mappers[].protocolMapper и не документировано, кроме как источником мапперов и его родительским(и) классами. Пример приведен ниже. Получить корректные значения конфигурации легче всего, выведя существующую конфигурацию протокольного маппера через режим проверки в возвращаемом значении existing.

id

строка

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

name

строка

Имя этого протокольного маппера.

protocol

строка

Определяет, для какого протокола этот протокольный маппер активен.

Варианты:

  • "openid-connect"
  • "saml"
  • "wsfed"
  • "docker-v2"

protocolMapper

string

Внутреннее имя Keycloak типа этого протокол-маппера. Поскольку предоставление исчерпывающего списка невозможно, так как он может быть расширен с помощью SPIs пользователем Keycloak, по умолчанию Keycloak с версии 3.4 поставляется как минимум с:

docker-v2-allow-all-mapper

oidc-address-mapper

oidc-full-name-mapper

oidc-group-membership-mapper

oidc-hardcoded-claim-mapper

oidc-hardcoded-role-mapper

oidc-role-name-mapper

oidc-script-based-protocol-mapper

oidc-sha256-pairwise-sub-mapper

oidc-usermodel-attribute-mapper

oidc-usermodel-client-role-mapper

oidc-usermodel-property-mapper

oidc-usermodel-realm-role-mapper

oidc-usersessionmodel-note-mapper

saml-group-membership-mapper

saml-hardcode-attribute-mapper

saml-hardcode-role-mapper

saml-role-list-mapper

saml-role-name-mapper

saml-user-attribute-mapper

saml-user-property-mapper

saml-user-session-note-mapper

Полный список доступных мапперов в вашей установке можно получить на панели администратора, перейдя в Server Info -> Providers и посмотрев раздел ‘protocol-mapper’.

realm

string

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

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

state

string

Состояние client_scope.

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

В absent, client_scope будет удалён, если он существует.

Варианты:

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

token

string

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

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

validate_certs

boolean

Проверка TLS-сертификатов (не отключайте это в рабочей среде).

Варианты:

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

Атрибуты

Атрибут

Поддержка

Описание

check_mode

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

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

diff_mode

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

Возвратит подробности о том, что изменилось (или, возможно, требует изменения в check_mode), когда режим diff включен.

Примеры

- name: Create a Keycloak client_scopes, authentication with credentials
  community.general.keycloak_clientscope:
    name: my-new-kc-clientscope
    realm: MyCustomRealm
    state: present
    auth_client_id: admin-cli
    auth_keycloak_url: https://auth.example.com/auth
    auth_realm: master
    auth_username: USERNAME
    auth_password: PASSWORD
  delegate_to: localhost

- name: Create a Keycloak client_scopes, authentication with token
  community.general.keycloak_clientscope:
    name: my-new-kc-clientscope
    realm: MyCustomRealm
    state: present
    auth_client_id: admin-cli
    auth_keycloak_url: https://auth.example.com/auth
    token: TOKEN
  delegate_to: localhost

- name: Delete a keycloak client_scopes
  community.general.keycloak_clientscope:
    id: '9d59aa76-2755-48c6-b1af-beb70a82c3cd'
    state: absent
    realm: MyCustomRealm
    auth_client_id: admin-cli
    auth_keycloak_url: https://auth.example.com/auth
    auth_realm: master
    auth_username: USERNAME
    auth_password: PASSWORD
  delegate_to: localhost

- name: Delete a Keycloak client_scope based on name
  community.general.keycloak_clientscope:
    name: my-clientscope-for-deletion
    state: absent
    auth_client_id: admin-cli
    auth_keycloak_url: https://auth.example.com/auth
    auth_realm: master
    auth_username: USERNAME
    auth_password: PASSWORD
  delegate_to: localhost

- name: Update the name of a Keycloak client_scope
  community.general.keycloak_clientscope:
    id: '9d59aa76-2755-48c6-b1af-beb70a82c3cd'
    name: an-updated-kc-clientscope-name
    state: present
    auth_client_id: admin-cli
    auth_keycloak_url: https://auth.example.com/auth
    auth_realm: master
    auth_username: USERNAME
    auth_password: PASSWORD
  delegate_to: localhost

- name: Create a Keycloak client_scope with some custom attributes
  community.general.keycloak_clientscope:
    auth_client_id: admin-cli
    auth_keycloak_url: https://auth.example.com/auth
    auth_realm: master
    auth_username: USERNAME
    auth_password: PASSWORD
    name: my-new_clientscope
    description: description-of-clientscope
    protocol: openid-connect
    protocol_mappers:
      - config:
          access.token.claim: true
          claim.name: "family_name"
          id.token.claim: true
          jsonType.label: String
          user.attribute: lastName
          userinfo.token.claim: true
        name: family name
        protocol: openid-connect
        protocolMapper: oidc-usermodel-property-mapper
      - config:
          attribute.name: Role
          attribute.nameformat: Basic
          single: false
        name: role list
        protocol: saml
        protocolMapper: saml-role-list-mapper
    attributes:
        attrib1: value1
        attrib2: value2
        attrib3:
            - with
            - numerous
            - individual
            - list
            - items
  delegate_to: localhost

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

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

Ключ

Описание

end_state

словарь

Представление client scope после выполнения модуля (пример усечён).

Возвращается: при успехе

Пример: {"adminUrl": "http://www.example.com/admin_url", "attributes": {"request.object.signature.alg": "RS256"}}

existing

словарь

Представление существующего client scope (пример усечён).

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

Пример: {"adminUrl": "http://www.example.com/admin_url", "attributes": {"request.object.signature.alg": "RS256"}}

msg

строка

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

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

Пример: "Client_scope testclientscope has been updated"

proposed

словарь

Представление предлагаемого client scope.

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

Пример: {"clientId": "test"}

Авторы

  • Gaëtan Daubresse (@Gaetan2907)

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

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

© 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_clientscope_module.html

Spec-Zone.ru

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