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

如何用Curl查询Keycloak用户是否存在会话?无需密码验证

查询Keycloak用户会话(无需用户密码)

可以通过Keycloak的Admin API实现,不需要传入用户密码,但需要先获取具备权限的访问令牌(比如管理员或服务账户令牌),具体步骤如下:

1. 获取权限令牌

使用client_credentials授权模式,获取可访问Admin API的令牌。示例用默认的admin-cli客户端:

curl --data "grant_type=client_credentials&client_id=admin-cli&client_secret={adminClientSecret}" localhost:8080/realms/master/protocol/openid-connect/token

替换{adminClientSecret}为admin-cli客户端的实际密钥(可在Keycloak控制台的master领域→客户端→admin-cli→凭据中查看)。

2. 查询用户ID(若未知)

如果不知道目标用户的ID,先通过用户名查询:

curl -H "Authorization: Bearer {adminAccessToken}" "localhost:8080/admin/realms/Test/users?username=test"

替换{adminAccessToken}为第一步获取的令牌,返回结果中提取用户的id字段。

3. 查询用户会话

使用用户ID调用会话查询接口:

curl -H "Authorization: Bearer {adminAccessToken}" localhost:8080/admin/realms/Test/users/{userId}/sessions

替换{userId}为目标用户的ID。

结果说明

  • 返回非空数组:用户存在活跃会话
  • 返回空数组:当前无活跃会话

权限说明

确保用于获取令牌的客户端(如admin-cli)拥有realm-management客户端下的view-users角色,否则会返回权限不足的错误。

内容的提问来源于stack exchange,提问作者Dumi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 18:10:31