Keycloak 通过 Rest API 设置密码策略

问题描述

我想通过 Keycloak RestAPI 更新/添加密码策略。

我浏览了文档,但看起来我只能通过 API 检索密码策略列表。任何其他可能的方式,以便我可以通过 Rest API 处理密码策略?

https://www.keycloak.org/docs-api/11.0/rest-api/index.html#_serverinforepresentation
https://www.keycloak.org/docs-api/11.0/rest-api/index.html#_passwordpolicytyperepresentation

Manage Password Policy through Keycloak Admin Panel

我使用的是 Keycloak 11。


更新: 我设法找出密码策略值位于 Realm 表下的密码策略列中。我想我可能需要重新启动 Keycloak,或者清除 Keycloak 缓存 在 https://www.keycloak.org/docs-api/11.0/rest-api/index.html 上使用 Keycloak Rest API (POST /{realm}/clear-realm-cache) 使其在我更新表后工作。

enter image description here

解决方法

您可以使用Keycloak Rest API

获取 Realm 正在使用的 password policies 的列表,即:

GET <KEYCLOAK_HOST>/auth/admin/realms/<YOUR_REALM>

JSON 响应中提取字段:

passwordPolicy

对于以下政策:

enter image description here

你会得到以下回复:

length(8) and hashIterations(27500)

如果您想添加/更新给定的政策

PUT <KEYCLOAK_HOST>/auth/admin/realms/<YOUR_REALM>

使用适当的数据参数。例如,假设从前面的示例中您想将“最小长度”策略更新为 10 而不是 8,那么要在 PUT 请求中发送的数据将是:

'{"passwordPolicy":"length(10) and hashIterations(27500)"}'

对于那些感兴趣的人,我在这个 git repo 中有上述操作的脚本。