community.general.keycloak_component 模块 – 允许通过 Keycloak API 管理 Keycloak 组件

注意

此模块是 community.general 集合 (版本 10.1.0) 的一部分。

如果您正在使用 ansible 包,您可能已经安装了此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.general

要在 playbook 中使用它,请指定:community.general.keycloak_component

community.general 10.0.0 中的新功能

概要

  • 此模块允许通过 Keycloak REST API 管理 Keycloak 组件。它需要通过 OpenID Connect 访问 REST API;连接的用户和正在使用的 realm 必须具有必要的访问权限。在默认的 Keycloak 安装中,admin-cli 和一个 admin 用户可以工作,也可以使用一个单独的 realm 定义,该定义具有针对您需求定制的范围和一个具有预期角色的用户。

  • 模块选项的名称是 Keycloak API 及其文档中找到的 camelCase 版本的 snake_cased 版本,网址为 https://keycloak.java.net.cn/docs-api/latest/rest-api/index.html。提供了别名,因此也可以使用 camelCased 版本。

参数

参数

注释

auth_client_id

字符串

用于向 API 进行身份验证的 OpenID Connect client_id

默认值: "admin-cli"

auth_client_secret

字符串

auth_client_id 结合使用的客户端密钥(如果需要)。

auth_keycloak_url

别名: url

字符串 / 必需

Keycloak 实例的 URL。

auth_password

别名: password

字符串

用于对 API 进行身份验证的密码。

auth_realm

字符串

用于对 API 进行身份验证的 Keycloak realm 名称。

auth_username

别名: username

字符串

用于对 API 进行身份验证的用户名。

config

字典

提供程序的配置属性。

内容因提供程序类型而异。

connection_timeout

整数

在 community.general 4.5.0 中添加

控制 Keycloak API 的 HTTP 连接超时时间段(以秒为单位)。

默认值: 10

http_agent

字符串

在 community.general 5.4.0 中添加

配置 HTTP User-Agent 标头。

默认值: "Ansible"

name

字符串 / 必需

要创建的组件的名称。

parent_id

字符串 / 必需

组件的 parent_id。实际上是 realm 的 ID(名称)。

provider_id

字符串 / 必需

密钥的“提供程序 ID”的名称。

provider_type

字符串 / 必需

密钥的“提供程序类型”的名称。即 org.keycloak.storage.UserStorageProviderorg.keycloak.userprofile.UserProfileProvider 等。

请参阅 https://keycloak.java.net.cn/docs/latest/server_development/index.html#_providers

state

字符串

Keycloak 组件的状态。

present 上,将创建组件(如果已存在则更新)。

absent 上,如果组件存在,则将其删除。

选项

  • "present" ←(默认)

  • "absent"

token

字符串

在 community.general 3.0.0 中添加

Keycloak API 的身份验证令牌。

validate_certs

布尔值

验证 TLS 证书(不要在生产环境中禁用此功能)。

选项

  • false

  • true ← (默认)

属性

属性

支持

描述

check_mode

支持: 完全

可以在 check_mode 模式下运行,并返回更改状态预测,而无需修改目标。

diff_mode

支持: 完全

在 diff 模式下,将返回已更改(或可能需要在 check_mode 中更改)的详细信息。

示例

- name: Manage Keycloak User Storage Provider
  community.general.keycloak_component:
    auth_keycloak_url: https://127.0.0.1:8080/auth
    auth_username: keycloak
    auth_password: keycloak
    auth_realm: master
    name: my storage provider
    state: present
    parent_id: some_realm
    provider_id: my storage
    provider_type: "org.keycloak.storage.UserStorageProvider"
    config:
      myCustomKey: "my_custom_key"
      cachePolicy: "NO_CACHE"
      enabled: true

返回值

常见的返回值已在此处记录 此处,以下是此模块特有的字段

描述

end_state

字典

模块执行后 keycloak_component 的表示形式。

返回: 成功时

config

字典

组件配置。

返回: 成功

id

字符串

组件的 ID。

返回:state=present

示例: "5b7ec13f-99da-46ad-8326-ab4c73cf4ce4"

name

字符串

组件的名称。

返回:state=present

示例: "mykey"

parentId

字符串

此密钥所属的 realm 的 ID。

返回:state=present

示例: "myrealm"

providerId

字符串

密钥提供程序的 ID。

返回:state=present

示例: "rsa"

providerType

字符串

提供程序的类型。

返回:state=present

作者

  • Björn Bösel (@fivetide)