如何在Keycloak中生成短期服务账户访问令牌?
Keycloak服务账户生成短期访问令牌的方法
我通过Keycloak的client_credentials模式生成服务账户的访问令牌,请求示例如下:
curl --location --request POST 'http://my.domain/auth/realms/aRealm/protocol/openid-connect/token' \ --header 'Authorization: Basic YXBcnZlcjpNlpuMwRWk1Y02ZFRE15vVp2YUdHJibmNalVvMFmxzVNQVg==' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=client_credentials'
成功获取令牌后,发现它的有效期为30分钟,和我在领域设置中为普通用户配置的有效期一致。但服务账户的使用场景下,我不需要这么长的有效期,10-15秒就足够生成令牌并立即发起API请求。
我了解到部分认证系统支持通过传递lifetime参数指定令牌的具体有效期,但Keycloak官方文档中关于服务账户的章节并未提及短期令牌相关内容。我想知道是否遗漏了相关章节,或者有没有其他方法可以为服务账户生成短期令牌?
补充说明:
- 该Keycloak客户端同时用于用户登录系统,用户令牌需要保持30分钟有效期,到期后需重新刷新
- 服务账户场景为分布式代码向自有服务器发起API请求,仅需极短有效期的令牌(够完成一次API调用即可)
内容的提问来源于stack exchange,提问作者stratosgear
相关产品推荐
相关产品推荐

