community.general.keycloak_clienttemplate 模块 – 通过 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_clienttemplate。
概要
- 此模块允许通过 Keycloak REST API 管理 Keycloak 客户端模板。它需要通过 OpenID Connect 访问 REST API;连接的用户和使用的客户端必须具有必要的访问权限。在默认的 Keycloak 安装中,admin-cli 和管理员用户都可以工作,单独的客户端定义(其范围根据您的需求进行调整)和具有预期角色的用户也可以工作。 
- 模块选项的名称是 Keycloak API 及其文档(https://keycloak.com.cn/docs-api/8.0/rest-api/index.html)中找到的 camelCase 名称的 snake_case 版本。 
- Keycloak API 并不总是强制仅使用合理的设置——例如,您可以在 OpenID Connect 客户端上设置 SAML 特定的设置,反之亦然。请小心。如果您没有指定设置,通常会选择合理的默认值。 
参数
| 参数 | 注释 | 
|---|---|
| 此客户端模板的更多属性的字典。这可以包含各种配置设置,尽管在截至 3.4 版本的 Keycloak 默认安装中,没有文档或已知设置,因此通常为空。 | |
| 用于向 API 进行身份验证的 OpenID Connect  默认值:  | |
| 与  | |
| Keycloak 实例的 URL。 | |
| 用于 API 访问身份验证的密码。 | |
| 用于 API 访问身份验证的 Keycloak realm 名称。 | |
| 用于 API 访问身份验证的用户名。 | |
| 控制对 Keycloak API 的 HTTP 连接超时时间(以秒为单位)。 默认值:  | |
| Keycloak 中客户端模板的描述。 | |
| 是否为此客户端模板设置“允许完全范围”功能。这是 Keycloak REST API 中的“fullScopeAllowed”。 选项 
 | |
| 配置 HTTP User-Agent 标头。 默认值:  | |
| 要处理的客户端模板的 ID。这通常是 UUID。 | |
| 客户端模板的名称。 | |
| 客户端模板的类型。 
 选项 
 | |
| 定义此客户端模板的协议映射器的字典列表。这是 Keycloak REST API 中的“protocolMappers”。 | |
| 字典,指定协议映射器的配置选项;其内容取决于 | |
| 指定用户是否需要为此映射器处于活动状态而向客户端提供同意。 选项 
 | |
| 呈现给用户以接受的同意的可读名称。 | |
| 通常是 UUID,指定此协议映射器实例的内部 ID。 | |
| 此协议映射器的名称。 | |
| 这指定了此协议映射器处于活动状态的协议。 选项 
 | |
| 此协议映射器类型的 Keycloak 内部名称。由于这可以通过 Keycloak 的用户通过 SPI 扩展,因此不可能提供详尽的列表,但默认情况下,截至 3.4 版本的 Keycloak 至少包含: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 您可以在管理员控制台中通过转到服务器信息 -> 提供程序并在“协议映射器”下查看来获取安装中可用映射器的完整列表。 | |
| 找到此客户端模板的 Realm。 默认值:  | |
| 客户端模板的状态。 在  在  选项 
 | |
| Keycloak API 的身份验证令牌。 | |
| 验证 TLS 证书(不要在生产环境中禁用此选项)。 选项 
 | 
属性
| 属性 | 支持 | 描述 | 
|---|---|---|
| 支持:完全支持 | 可以在  | |
| 支持:完全支持 | 在差异模式下,将返回有关已更改内容(或可能需要在  | 
注释
注意
- Keycloak REST API 定义了其他字段(即 - bearerOnly、- consentRequired、- standardFlowEnabled、- implicitFlowEnabled、- directAccessGrantsEnabled、- serviceAccountsEnabled、- publicClient和- frontchannelLogout),虽然可以使用 keycloak_client,但它们对 Keycloak 客户端模板没有任何影响,如果使用更改客户端模板的 API 请求提供,则会被丢弃。因此,此模块中不提供这些字段。
示例
- name: Create or update Keycloak client template (minimal), authentication with credentials
  community.general.keycloak_client:
    auth_client_id: admin-cli
    auth_keycloak_url: https://auth.example.com/auth
    auth_realm: master
    auth_username: USERNAME
    auth_password: PASSWORD
    realm: master
    name: this_is_a_test
  delegate_to: localhost
- name: Create or update Keycloak client template (minimal), authentication with token
  community.general.keycloak_clienttemplate:
    auth_client_id: admin-cli
    auth_keycloak_url: https://auth.example.com/auth
    auth_realm: master
    token: TOKEN
    realm: master
    name: this_is_a_test
  delegate_to: localhost
- name: Delete Keycloak client template
  community.general.keycloak_client:
    auth_client_id: admin-cli
    auth_keycloak_url: https://auth.example.com/auth
    auth_realm: master
    auth_username: USERNAME
    auth_password: PASSWORD
    realm: master
    state: absent
    name: test01
  delegate_to: localhost
- name: Create or update Keycloak client template (with a protocol mapper)
  community.general.keycloak_client:
    auth_client_id: admin-cli
    auth_keycloak_url: https://auth.example.com/auth
    auth_realm: master
    auth_username: USERNAME
    auth_password: PASSWORD
    realm: master
    name: this_is_a_test
    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
        consentRequired: true
        consentText: "${familyName}"
        name: family name
        protocol: openid-connect
        protocolMapper: oidc-usermodel-property-mapper
    full_scope_allowed: false
    id: bce6f5e9-d7d3-4955-817e-c5b7f8d65b3f
  delegate_to: localhost
返回值
常见的返回值已在此处记录,以下是此模块特有的字段
| 键 | 描述 | 
|---|---|
| 模块执行后客户端模板的表示(示例已截断)。 返回:成功时 示例:  | |
| 现有客户端模板的表示(示例已截断)。 返回:始终返回 示例:  | |
| 关于采取了什么操作的消息。 返回:始终返回 示例:  | |
| 建议的客户端模板的表示。 返回:始终返回 示例:  | 
