community.general.keycloak_clientsecret_info 模块 – 通过 Keycloak API 检索客户端密钥

注意

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

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

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

要在剧本中使用它,请指定:community.general.keycloak_clientsecret_info

community.general 6.1.0 中的新功能

概要

  • 此模块允许您通过 Keycloak REST API 获取 Keycloak 客户端密钥。 它需要通过 OpenID Connect 访问 REST API;连接的用户和正在使用的客户端必须具有必要的访问权限。 在默认的 Keycloak 安装中,admin-cli 和管理员用户可以工作,具有为您的需求量身定制的作用域的单独客户端定义以及具有预期角色的用户也可以工作。

  • 在检索新的客户端密钥时,尽可能向模块提供客户端的 id(而不是 client_id)。 这会删除对 API 的查找,以将 client_id 转换为客户端 ID。

  • 请注意,此模块返回客户端密钥。 为避免其显示在日志中,请将 no_log: true 添加到任务。

参数

参数

注释

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 领域名称。

auth_username

别名:username

字符串

用于 API 访问的身份验证用户名。

client_id

别名:clientId

字符串

客户端的 client_id。 传递此参数而不是 id 会导致额外的 API 调用。

connection_timeout

整数

在 community.general 4.5.0 中添加

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

默认值: 10

http_agent

字符串

在 community.general 5.4.0 中添加

配置 HTTP User-Agent 标头。

默认值: "Ansible"

id

字符串

此客户端的唯一标识符。

此参数不是获取或生成客户端密钥所必需的,但提供此参数将减少所需的 API 调用次数。

realm

字符串

此客户端所在的 Keycloak 领域。

默认值: "master"

token

字符串

在 community.general 3.0.0 中添加

Keycloak API 的身份验证令牌。

validate_certs

布尔值

验证 TLS 证书(请勿在生产环境中禁用此项)。

选择

  • false

  • true ← (默认)

属性

属性

支持

描述

check_mode

支持: 完全

此操作不修改状态。

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

diff_mode

支持: 不适用

此操作不修改状态。

当处于差异模式时,将返回已更改的内容的详细信息(或在 check_mode 模式下可能需要更改的内容)。

示例

- name: Get a Keycloak client secret, authentication with credentials
  community.general.keycloak_clientsecret_info:
    id: '9d59aa76-2755-48c6-b1af-beb70a82c3cd'
    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
  no_log: true

- name: Get a new Keycloak client secret, authentication with token
  community.general.keycloak_clientsecret_info:
    id: '9d59aa76-2755-48c6-b1af-beb70a82c3cd'
    realm: MyCustomRealm
    auth_client_id: admin-cli
    auth_keycloak_url: https://auth.example.com/auth
    token: TOKEN
  delegate_to: localhost
  no_log: true

- name: Get a new Keycloak client secret, passing client_id instead of id
  community.general.keycloak_clientsecret_info:
    client_id: 'myClientId'
    realm: MyCustomRealm
    auth_client_id: admin-cli
    auth_keycloak_url: https://auth.example.com/auth
    token: TOKEN
  delegate_to: localhost
  no_log: true

返回值

通用返回值记录在这里,以下是此模块独有的字段

描述

clientsecret_info

复杂类型

客户端密钥的表示

返回: 成功时

type

字符串

凭据类型。

返回: 始终

示例: "secret"

value

字符串

客户端密钥。

返回: 始终

示例: "cUGnX1EIeTtPPAkcyGMv0ncyqDPu68P1"

msg

字符串

描述我们是否成功或失败的文本描述

返回: 始终

作者

  • Fynn Chen (@fynncfchen)

  • John Cant (@johncant)