You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Keycloak 24.0.5 REST API自动将管理员领域的TOTP执行设置为REQUIRED?

如何通过Keycloak 24.0.5 REST API自动将管理员领域的TOTP执行设置为REQUIRED?

我之前用Testcontainers做集成测试的时候,刚好需要自动配置Keycloak 24.0.5的管理员领域强制TOTP,完全懂你不想每次手动点GUI的痛苦!下面是我亲测有效的步骤,全程用REST API搞定:

第一步:获取管理员API访问令牌

首先得拿到Keycloak的管理员权限令牌,才能调用后台管理接口。你可以用curl或者测试代码里的HTTP客户端(比如Node.js的axios)发送POST请求到令牌端点:

curl -X POST \
  http://<你的Keycloak容器地址>:<端口>/realms/master/protocol/openid-connect/token \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'grant_type=password&client_id=admin-cli&username=admin&password=<你的管理员密码>'

把命令里的占位符换成你实际的容器地址、端口和管理员密码就行,返回结果里的access_token就是我们接下来要用到的认证令牌。

第二步:强制管理员领域用户配置TOTP

接下来要更新master领域的设置,把配置TOTP设为所有用户(包括管理员)登录时的强制要求。发送一个PATCH请求到master领域的管理接口:

curl -X PATCH \
  http://<你的Keycloak容器地址>:<端口>/admin/realms/master \
  -H 'Authorization: Bearer <刚才拿到的access_token>' \
  -H 'Content-Type: application/json' \
  -d '{
    "requiredActions": [
      {
        "alias": "CONFIGURE_TOTP",
        "enabled": true,
        "defaultAction": true,
        "priority": 10
      }
    ]
  }'

这个请求会把CONFIGURE_TOTP这个动作设为启用且默认强制——简单说就是,任何用户(包括admin账号)下次登录时,系统会直接跳转到TOTP配置页面,不完成配置就没法进入后台。

第三步:可选——强制已配置用户登录时必须验证TOTP

如果希望已经配置过TOTP的管理员登录时,必须完成TOTP验证才能进入,那还得修改认证流程,把TOTP验证步骤设为REQUIRED:

  • 先获取browser认证流程的ID,发送GET请求:
curl -X GET \
  http://<你的Keycloak容器地址>:<端口>/admin/realms/master/authentication/flows \
  -H 'Authorization: Bearer <access_token>'

在返回的JSON结果里找到alias为browser的流程,记下它的id。

  • 接着找到该流程下TOTP验证步骤的ID,发送GET请求:
curl -X GET \
  http://<你的Keycloak容器地址>:<端口>/admin/realms/master/authentication/flows/<browser-flow-id>/executions \
  -H 'Authorization: Bearer <access_token>'

找到providerId为auth-otp-form的执行步骤,记下它的id。

  • 最后更新这个步骤的要求为REQUIRED:
curl -X PUT \
  http://<你的Keycloak容器地址>:<端口>/admin/realms/master/authentication/executions/<execution-id> \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Content-Type: application/json' \
  -d '{
    "requirement": "REQUIRED"
  }'

这样一套操作下来,管理员领域的TOTP强制要求就全部配置好了,完全不需要手动操作GUI,刚好适配你用Testcontainers做集成测试的场景!

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 12:44:35