community.general.keycloak_clientscope 模块 – 允许通过 Keycloak API 管理 Keycloak client_scopes
注意
此模块是 community.general 集合(版本 10.1.0)的一部分。
如果您使用的是 ansible
包,您可能已经安装了此集合。它不包含在 ansible-core
中。要检查是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.general
。
要在 playbook 中使用它,请指定:community.general.keycloak_clientscope
。
community.general 3.4.0 中的新增功能
概要
此模块允许您通过 Keycloak REST API 添加、删除或修改 Keycloak client_scopes。它需要通过 OpenID Connect 访问 REST API;连接的用户和使用的客户端必须具有必要的访问权限。在默认的 Keycloak 安装中,admin-cli 和管理员用户可以工作,或者可以使用单独的客户端定义(范围根据您的需求定制)和具有预期角色的用户。
模块选项的名称是 Keycloak API 及其文档(位于 https://keycloak.java.net.cn/docs-api/8.0/rest-api/index.html)中找到的 camelCase 版本的 snake_cased 版本。
属性在 Keycloak API 中是多值的。所有属性都是单个值的列表,并且将由此模块以这种方式返回。您可以在调用模块时传递属性的单个值,这将转换为适合 API 的列表。
在更新 client_scope 时,如果可能,请向模块提供 client_scope ID。这将消除对 API 的查找以将名称转换为 client_scope ID。
参数
参数 |
注释 |
---|---|
一个键/值对的字典,用于设置为 client_scope 的自定义属性。 值可以是单个值(例如字符串)或字符串列表。 |
|
用于通过 OpenID Connect 验证 API 的 默认值: |
|
与 |
|
Keycloak 实例的 URL。 |
|
用于使用 API 访问进行身份验证的密码。 |
|
用于验证 API 访问的 Keycloak realm 名称。 |
|
用于使用 API 访问进行身份验证的用户名。 |
|
控制到 Keycloak API 的 HTTP 连接超时时间(以秒为单位)。 默认值: |
|
此 client_scope 的描述。 此参数不是更新或删除 client_scope 所必需的。 |
|
配置 HTTP User-Agent 标头。 默认值: |
|
此 client_scope 的唯一标识符。 此参数不是更新或删除 client_scope 所必需的,但提供它可以减少所需的 API 调用次数。 |
|
client_scope 的名称。 此参数仅在创建或更新 client_scope 时是必需的。 |
|
客户端类型。
选项
|
|
一个字典列表,用于定义此客户端的协议映射器。 这是 Keycloak REST API 中的 “protocolMappers”。 |
|
一个字典,指定协议映射器的配置选项;内容因 |
|
通常是一个 UUID,指定此协议映射器实例的内部 ID。 |
|
此协议映射器的名称。 |
|
这指定此协议映射器用于哪个协议。 处于活动状态。 选项
|
|
此协议映射器的 Keycloak 内部类型名称。虽然无法提供详尽的列表,因为用户可以通过 Keycloak 的 SPI 扩展此列表,但默认情况下,Keycloak 3.4 及更高版本至少包含以下映射器:
您可以在管理控制台中,通过转到“服务器信息” -> “提供程序”,然后在“协议映射器”下查看来获取安装中可用的映射器的完整列表。 |
|
此 client_scope 所在的 Keycloak realm。 默认值: |
|
client_scope 的状态。 设置为 设置为 选项
|
|
Keycloak API 的身份验证令牌。 |
|
验证 TLS 证书(在生产环境中不要禁用此项)。 选项
|
属性
属性 |
支持 |
描述 |
---|---|---|
支持:完全 |
可以在 |
|
支持:完全 |
当处于 diff 模式时,将返回有关已更改内容(或在 |
示例
- name: Create a Keycloak client_scopes, authentication with credentials
community.general.keycloak_clientscope:
name: my-new-kc-clientscope
realm: MyCustomRealm
state: present
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
- name: Create a Keycloak client_scopes, authentication with token
community.general.keycloak_clientscope:
name: my-new-kc-clientscope
realm: MyCustomRealm
state: present
auth_client_id: admin-cli
auth_keycloak_url: https://auth.example.com/auth
token: TOKEN
delegate_to: localhost
- name: Delete a keycloak client_scopes
community.general.keycloak_clientscope:
id: '9d59aa76-2755-48c6-b1af-beb70a82c3cd'
state: absent
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
- name: Delete a Keycloak client_scope based on name
community.general.keycloak_clientscope:
name: my-clientscope-for-deletion
state: absent
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
- name: Update the name of a Keycloak client_scope
community.general.keycloak_clientscope:
id: '9d59aa76-2755-48c6-b1af-beb70a82c3cd'
name: an-updated-kc-clientscope-name
state: present
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
- name: Create a Keycloak client_scope with some custom attributes
community.general.keycloak_clientscope:
auth_client_id: admin-cli
auth_keycloak_url: https://auth.example.com/auth
auth_realm: master
auth_username: USERNAME
auth_password: PASSWORD
name: my-new_clientscope
description: description-of-clientscope
protocol: openid-connect
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
name: family name
protocol: openid-connect
protocolMapper: oidc-usermodel-property-mapper
- config:
attribute.name: Role
attribute.nameformat: Basic
single: false
name: role list
protocol: saml
protocolMapper: saml-role-list-mapper
attributes:
attrib1: value1
attrib2: value2
attrib3:
- with
- numerous
- individual
- list
- items
delegate_to: localhost
返回值
常见的返回值记录在这里,以下是此模块独有的字段
键 |
描述 |
---|---|
模块执行后 client scope 的表示形式(示例被截断)。 返回: 成功时 示例: |
|
现有 client scope 的表示形式(示例被截断)。 返回: 始终 示例: |
|
关于采取了什么操作的消息。 返回: 始终 示例: |
|
建议的 client scope 的表示形式。 返回: 始终 示例: |