问题描述
我想通过 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
我使用的是 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) 使其在我更新表后工作。
解决方法
您可以使用Keycloak Rest API:
获取 Realm 正在使用的 password policies
的列表,即:
GET <KEYCLOAK_HOST>/auth/admin/realms/<YOUR_REALM>
从 JSON
响应中提取字段:
passwordPolicy
对于以下政策:
你会得到以下回复:
length(8) and hashIterations(27500)
如果您想添加/更新给定的政策
PUT <KEYCLOAK_HOST>/auth/admin/realms/<YOUR_REALM>
使用适当的数据参数。例如,假设从前面的示例中您想将“最小长度”策略更新为 10 而不是 8,那么要在 PUT 请求中发送的数据将是:
'{"passwordPolicy":"length(10) and hashIterations(27500)"}'
对于那些感兴趣的人,我在这个 git repo 中有上述操作的脚本。