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
。
要在 playbook 中使用它,请指定: community.general.keycloak_realm_rolemapping
。
community.general 8.2.0 中的新增功能
概要
此模块允许您使用 Keycloak REST API 向组添加、删除或修改 Keycloak 领域角色映射。它需要通过 OpenID Connect 访问 REST API;连接的用户和使用的客户端必须具有必要的访问权限。在默认的 Keycloak 安装中,admin-cli 和管理员用户都可以工作,单独的客户端定义(范围根据您的需求定制)和拥有预期角色的用户也可以工作。
模块选项的名称是 Keycloak API 及其文档中找到的 camelCase 名称的 snake_cased 版本,请访问 https://keycloak.java.net.cn/docs-api/18.0/rest-api/index.html。
在 Keycloak API 中,属性是多值的。所有属性都是单个值的列表,并且此模块将以这种方式返回它们。调用模块时,您可以为属性传递单个值,这将转换为适合 API 的列表。
更新 group_rolemapping 时,如果可能,请向模块提供角色 ID。这将删除将名称转换为角色 ID 的 API 查找。
参数
参数 |
注释 |
---|---|
用于向 API 进行身份验证的 OpenID Connect 默认值: |
|
与 |
|
Keycloak 实例的 URL。 |
|
用于 API 访问身份验证的密码。 |
|
用于 API 访问身份验证的 Keycloak 领域名称。 |
|
用于 API 访问身份验证的用户名。 |
|
控制对 Keycloak API 的 HTTP 连接超时时间(以秒为单位)。 默认值: |
|
要映射的组的 ID。 此参数对于更新或删除角色映射不是必需的,但提供它会减少所需的 API 调用次数。 |
|
要映射的组的名称。 此参数是必需的(可以使用 gid 替换以减少 API 调用次数)。 |
|
配置 HTTP User-Agent 标头。 默认值: |
|
要处理的组的父组列表,按从上到下的顺序排序。 如果您的组是子组并且您没有在 |
|
按 ID 标识父项。 比使用 当第一个父项作为 ID 给出时,可以在任何点开始深度父链。 请注意,原则上可以同时指定 ID 和名称,但当前实现始终只使用其中一个,优先使用 ID。 |
|
按名称识别父级。 比使用 当只使用名称给出父级链时,它必须完整到顶部。 请注意,原则上可以同时指定 ID 和名称,但当前实现始终只使用其中一个,优先使用 ID。 |
|
此角色表示所在的 Keycloak 区域。 默认值: |
|
要映射到组的角色。 |
|
此角色表示的唯一标识符。 此参数对于更新或删除角色表示不是必需的,但提供它将减少所需的 API 调用次数。 |
|
角色表示的名称。 此参数仅在创建或更新角色表示时需要。 |
|
区域角色映射的状态。 在 在 选项
|
|
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
返回值
常用返回值已在此处记录,以下是此模块特有的字段
键 |
描述 |
---|---|
模块执行后客户端角色映射的表示。 示例已截断。 返回:成功时 示例: |
|
现有客户端角色映射的表示。 示例已截断。 返回:始终 示例: |
|
关于采取了什么操作的消息。 返回:始终 示例: |
|
建议的客户端角色映射的表示。 返回:始终 示例: |