community.general.keycloak_user_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_user_rolemapping
。
community.general 5.7.0 中的新增功能
概要
此模块允许您使用 Keycloak REST API 添加、删除或修改 Keycloak 用户角色映射。它需要通过 OpenID Connect 访问 REST API;连接的用户和正在使用的客户端必须具有必要的访问权限。在默认的 Keycloak 安装中,admin-cli 和一个管理员用户可以工作,具有为您的需求量身定制的作用域的单独客户端定义以及具有预期角色的用户也可以工作。
模块选项的名称是 Keycloak API 及其文档(位于 https://keycloak.java.net.cn/docs-api/8.0/rest-api/index.html)中找到的驼峰式名称的蛇形命名版本。
属性在 Keycloak API 中是多值的。所有属性都是单个值的列表,并且将由该模块以这种方式返回。您可以在调用模块时传递属性的单个值,这将被转换为适合 API 的列表。
更新 user_rolemapping 时,请尽可能向模块提供角色 ID。这会删除对 API 的查找,以将名称转换为角色 ID。
参数
参数 |
注释 |
---|---|
用于通过 OpenID Connect 默认值: |
|
与 |
|
Keycloak 实例的 URL。 |
|
用于 API 访问身份验证的密码。 |
|
用于 API 访问身份验证的 Keycloak 领域名称。 |
|
用于 API 访问身份验证的用户名。 |
|
要映射的客户端的 ID。 此参数不是更新或删除角色映射所必需的,但提供它将减少所需的 API 调用次数。 |
|
控制到 Keycloak API 的 HTTP 连接超时时间(以秒为单位)。 默认值: |
|
配置 HTTP User-Agent 标头。 默认值: |
|
此 role_representation 所属的 Keycloak 领域。 默认值: |
|
要映射到用户的角色。 |
|
此 role_representation 的唯一标识符。 此参数不是更新或删除 role_representation 所必需的,但提供它将减少所需的 API 调用次数。 |
|
角色表示的名称。 仅当创建或更新 role_representation 时,此参数才是必需的。 |
|
要映射的 service-account-user 的客户端 ID。 此参数不是更新或删除角色映射所必需的,但提供它将减少所需的 API 调用次数。 |
|
user_rolemapping 的状态。 在 在 选择
|
|
角色映射到的用户的用户名。 此参数不是必需的(可以使用 uid 替换以减少 API 调用)。 |
|
Keycloak API 的身份验证令牌。 |
|
要映射的用户的 ID。 此参数不是更新或删除角色映射所必需的,但提供它将减少所需的 API 调用次数。 |
|
验证 TLS 证书(不要在生产环境中禁用此选项)。 选择
|
属性
属性 |
支持 |
描述 |
---|---|---|
支持: 完整 |
可以在 |
|
支持: 完整 |
当处于 diff 模式时,将返回已更改(或者在 |
示例
- name: Map a client role to a user, authentication with credentials
community.general.keycloak_user_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
client_id: client1
user_id: user1Id
roles:
- name: role_name1
id: role_id1
- name: role_name2
id: role_id2
delegate_to: localhost
- name: Map a client role to a service account user for a client, authentication with credentials
community.general.keycloak_user_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
client_id: client1
service_account_user_client_id: clientIdOfServiceAccount
roles:
- name: role_name1
id: role_id1
- name: role_name2
id: role_id2
delegate_to: localhost
- name: Map a client role to a user, authentication with token
community.general.keycloak_user_rolemapping:
realm: MyCustomRealm
auth_client_id: admin-cli
auth_keycloak_url: https://auth.example.com/auth
token: TOKEN
state: present
client_id: client1
target_username: user1
roles:
- name: role_name1
id: role_id1
- name: role_name2
id: role_id2
delegate_to: localhost
- name: Unmap client role from a user
community.general.keycloak_user_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
client_id: client1
uid: 70e3ae72-96b6-11e6-9056-9737fd4d0764
roles:
- name: role_name1
id: role_id1
- name: role_name2
id: role_id2
delegate_to: localhost
返回值
通用返回值记录在此处,以下是此模块特有的字段
键 |
描述 |
---|---|
模块执行后客户端角色映射的表示。 样本已截断。 返回: 成功时 示例: |
|
现有客户端角色映射的表示。 样本已截断。 返回: 始终 示例: |
|
关于执行了什么操作的消息。 返回: 始终 示例: |
|
建议的客户端角色映射的表示。 返回: 始终 示例: |