Keycloak 20.0+版本如何通过REST API查询用户临时锁定状态?
Keycloak 20.0+ 查询用户临时锁定状态的REST API方案
Keycloak 20.0+ 提供了两种可靠的方式查询用户的临时锁定状态,普通的用户详情接口(不带参数)不会返回锁定相关的敏感字段,需要调整调用方式:
方法1:调用用户凭证详情API
直接请求用户的凭证列表接口,密码类型的凭证条目会包含临时锁定所需的核心字段:
GET {{keycloak_url}}/admin/realms/{{realm}}/users/{{userid}}/credentials
返回的密码凭证(type: "password")中,关键字段说明:
failedLoginCount:累计失败登录次数lastFailure:最后一次失败登录的时间戳(毫秒)- 结合你的Realm密码策略中设置的临时锁定失败次数阈值和锁定时长,就能判断用户是否处于临时锁定状态:如果
failedLoginCount≥阈值,且当前时间与lastFailure的差值小于锁定时长,则用户处于临时锁定。
方法2:获取完整用户实体
在原有的用户详情接口后追加?briefRepresentation=false参数,请求完整的用户数据,其中会包含credentials数组:
GET {{keycloak_url}}/admin/realms/{{realm}}/users/{{userid}}?briefRepresentation=false
找到credentials中type: "password"的条目,同样通过failedLoginCount和lastFailure结合密码策略判断临时锁定状态。
注意:默认返回的enabled: false是用户被永久禁用的状态,和临时锁定是完全独立的两种状态,处于临时锁定的用户enabled字段依然为true。
内容的提问来源于stack exchange,提问作者Maharajan
相关产品推荐
相关产品推荐

