community.general.keycloak_realm_key 模块 – 通过 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_key
。
community.general 7.5.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 中找到的 camelCase 名称的 snake_case 版本。提供别名,以便可以使用 camelCased 版本。
此模块无法在导入后检测对实际加密密钥的更改。但是,如果在加密密钥旁边更改了其他属性,则密钥也会作为副作用发生更改,因为 JSON 负载需要包含私钥。这可以被认为是一个错误或一个特性,因为另一种方法是始终更新领域密钥,无论它是否已更改。
如果未明确提供证书,Keycloak 将动态创建它。因此,无法将证书的当前状态与所需状态(可能是空的)进行比较。
参数
参数 |
注释 |
---|---|
用于向 API 进行身份验证的 OpenID Connect 默认值: |
|
与 |
|
Keycloak 实例的 URL。 |
|
用于 API 访问身份验证的密码。 |
|
用于 API 访问身份验证的 Keycloak 领域名称。 |
|
用于 API 访问身份验证的用户名。 |
|
指定密钥及其属性的字典。 |
|
密钥算法。 值 选项
|
|
一个使用私钥签名的证书,以ASCII字符串形式表示。密钥内容必须与 如果希望Keycloak使用您的私钥自动生成证书,则将其设置为空字符串。 |
|
密钥的优先级。 |
|
以ASCII字符串形式表示的私钥。密钥内容必须与 请注意,模块无法检测指定的私钥是否与当前状态的私钥不同。使用 |
|
控制与Keycloak API的HTTP连接超时时间(以秒为单位)。 默认值: |
|
强制执行私钥和证书的状态。这不是自动的,因为此模块无法确定私钥的当前状态,因此无法根据实际差异触发更新。也就是说,即使force为false,私钥更新也可能作为其他更改的副作用发生。 选项
|
|
配置HTTP User-Agent标头。 默认值: |
|
要创建的Realm密钥的名称。 |
|
Realm密钥的父ID。实际上是Realm的名称。 |
|
密钥的“提供商ID”名称。 值 选项
|
|
Keycloak Realm密钥的状态。 在 在 选项
|
|
Keycloak API的身份验证令牌。 |
|
验证TLS证书(在生产环境中不要禁用此选项)。 选项
|
属性
属性 |
支持 |
描述 |
---|---|---|
支持:完全支持 |
可以在 |
|
支持:部分支持 |
在diff模式下,将返回有关已更改内容(或可能需要在 |
备注
注意
无法从Keycloak获取私钥的当前值。因此,无法将其期望状态与当前状态进行比较。
如果未明确提供证书,Keycloak 将动态创建它。因此,无法将证书的当前状态与所需状态(可能是空的)进行比较。
由于私钥和证书选项,该模块**不是完全幂等的**。如果知道私钥可能已更改,则可以使用
force=true
强制模块始终更新。
示例
- name: Manage Keycloak realm key (certificate autogenerated by Keycloak)
community.general.keycloak_realm_key:
name: custom
state: present
parent_id: master
provider_id: rsa
auth_keycloak_url: https://127.0.0.1:8080/auth
auth_username: keycloak
auth_password: keycloak
auth_realm: master
config:
private_key: "{{ private_key }}"
certificate: ""
enabled: true
active: true
priority: 120
algorithm: RS256
- name: Manage Keycloak realm key and certificate
community.general.keycloak_realm_key:
name: custom
state: present
parent_id: master
provider_id: rsa
auth_keycloak_url: https://127.0.0.1:8080/auth
auth_username: keycloak
auth_password: keycloak
auth_realm: master
config:
private_key: "{{ private_key }}"
certificate: "{{ certificate }}"
enabled: true
active: true
priority: 120
algorithm: RS256
返回值
常见的返回值已在此处记录,以下是此模块特有的字段
键 |
描述 |
---|---|
模块执行后keycloak_realm_key的表示。 返回:成功时 |
|
Realm密钥配置。 返回:当 示例: |
|
提供商的类型。 返回:当 |
|
关于采取了什么操作的消息。 返回:始终 |