community.general.keycloak_realm_rolemapping 模块 – 允许使用 Keycloak API 管理 Keycloak 域角色映射到组
注意
此模块是 community.general 集合(版本 10.1.0)的一部分。
如果您使用的是 ansible 包,您可能已经安装了此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list。
要安装它,请使用:ansible-galaxy collection install community.general。
要在剧本中使用它,请指定:community.general.keycloak_realm_rolemapping。
community.general 8.2.0 中的新增功能
概要
- 此模块允许您使用 Keycloak REST API 添加、删除或修改 Keycloak 域角色映射到组。它需要通过 OpenID Connect 访问 REST API;连接的用户和正在使用的客户端必须具有必要的访问权限。在默认的 Keycloak 安装中,admin-cli 和管理员用户可以工作,具有根据您的需求定制范围的单独客户端定义以及具有预期角色的用户也可以工作。 
- 模块选项的名称是 Keycloak API 及其文档(位于 https://keycloak.com.cn/docs-api/18.0/rest-api/index.html)中找到的 camelCase 版本的 snake_cased 版本。 
- 属性在 Keycloak API 中是多值的。所有属性都是单个值的列表,并且将由该模块以这种方式返回。您可以在调用模块时传递属性的单个值,这将被转换为适合 API 的列表。 
- 在更新 group_rolemapping 时,请尽可能向模块提供角色 ID。这将消除 API 的查找,以将名称转换为角色 ID。 
参数
| 参数 | 注释 | 
|---|---|
| 用于使用 OpenID Connect  默认值:  | |
| 与  | |
| Keycloak 实例的 URL。 | |
| 用于 API 访问的身份验证密码。 | |
| 用于 API 访问的身份验证 Keycloak 域名称。 | |
| 用于 API 访问的身份验证用户名。 | |
| 控制与 Keycloak API 的 HTTP 连接超时时间(以秒为单位)。 默认值:  | |
| 要映射的组的 ID。 此参数不是更新或删除 rolemapping 所必需的,但提供它将减少所需的 API 调用次数。 | |
| 要映射的组的名称。 此参数是必需的(可以通过 gid 替换以减少 API 调用)。 | |
| 配置 HTTP User-Agent 标头。 默认值:  | |
| 要处理的组的父组列表,从上到下排序。 如果您的组是子组并且您没有在  | |
| 通过 ID 识别父级。 与使用  当第一个给定的父级作为 ID 给出时,可以从任何点开始一个深层父级链。 请注意,原则上可以同时指定 ID 和名称,但当前实现始终只使用其中一个,并且 ID 优先。 | |
| 通过名称识别父级。 与使用  当给出只有名称的父链时,它必须完整直到顶部。 请注意,原则上可以同时指定 ID 和名称,但当前实现始终只使用其中一个,并且 ID 优先。 | |
| 此 role_representation 所在的 Keycloak 域。 默认值:  | |
| 要映射到组的角色。 | |
| 此 role_representation 的唯一标识符。 此参数不是更新或删除 role_representation 所必需的,但提供它将减少所需的 API 调用次数。 | |
| role_representation 的名称。 仅在创建或更新 role_representation 时才需要此参数。 | |
| realm_rolemapping 的状态。 如果 realm_rolemapping 尚不存在,则在  如果存在,则在  选项 
 | |
| Keycloak API 的身份验证令牌。 | |
| 验证 TLS 证书(请勿在生产环境中禁用此选项)。 选项 
 | 
属性
| 属性 | 支持 | 描述 | 
|---|---|---|
| 支持: 完全 | 可以在  | |
| 支持: 完全 | 在差异模式下,将返回已更改(或可能需要在  | 
示例
- name: Map a client role to a group, authentication with credentials
  community.general.keycloak_realm_rolemapping:
    realm: MyCustomRealm
    auth_client_id: admin-cli
    auth_keycloak_url: https://auth.example.com/auth
    auth_realm: master
    auth_username: USERNAME
    auth_password: PASSWORD
    state: present
    group_name: group1
    roles:
      - name: role_name1
        id: role_id1
      - name: role_name2
        id: role_id2
  delegate_to: localhost
- name: Map a client role to a group, authentication with token
  community.general.keycloak_realm_rolemapping:
    realm: MyCustomRealm
    auth_client_id: admin-cli
    auth_keycloak_url: https://auth.example.com/auth
    token: TOKEN
    state: present
    group_name: group1
    roles:
      - name: role_name1
        id: role_id1
      - name: role_name2
        id: role_id2
  delegate_to: localhost
- name: Map a client role to a subgroup, authentication with token
  community.general.keycloak_realm_rolemapping:
    realm: MyCustomRealm
    auth_client_id: admin-cli
    auth_keycloak_url: https://auth.example.com/auth
    token: TOKEN
    state: present
    group_name: subgroup1
    parents:
      - name: parent-group
    roles:
      - name: role_name1
        id: role_id1
      - name: role_name2
        id: role_id2
  delegate_to: localhost
- name: Unmap realm role from a group
  community.general.keycloak_realm_rolemapping:
    realm: MyCustomRealm
    auth_client_id: admin-cli
    auth_keycloak_url: https://auth.example.com/auth
    auth_realm: master
    auth_username: USERNAME
    auth_password: PASSWORD
    state: absent
    group_name: group1
    roles:
      - name: role_name1
        id: role_id1
      - name: role_name2
        id: role_id2
  delegate_to: localhost
返回值
常用返回值已记录在此处 这里,以下是此模块独有的字段
| 键 | 描述 | 
|---|---|
| 模块执行后客户端角色映射的表示。 示例已截断。 返回: 成功时 示例:  | |
| 现有客户端角色映射的表示。 示例已截断。 返回: 总是 示例:  | |
| 关于执行的操作的消息。 返回: 总是 示例:  | |
| 建议的客户端角色映射的表示。 返回: 总是 示例:  | 
