如何设置访问令牌在几秒钟内过期
Posted
技术标签:
【中文标题】如何设置访问令牌在几秒钟内过期【英文标题】:How to set access token to expire in seconds 【发布时间】:2021-04-26 03:50:51 【问题描述】:我在配置 Redhat Single SigOn (RHSSO) 或 Keycloak 令牌在几秒钟内到期时遇到问题,大约 30 秒。
我在几分钟内就找到了配置。有办法调整到秒吗?
【问题讨论】:
【参考方案1】:从Keycloak Admin Console 是不可能的; Keycloak 允许在Minutes
、Hours
或Days
中指定访问令牌的过期时间,但不能以秒为单位:
虽然,当请求令牌时,过期时间以秒为单位显示,即:
"access_token":"...","expires_in":60,"...
您可以通过管理控制台设置的最短时间为1
分钟。老实说,我看不出有 30 秒而不是 1 分钟有什么好处。
在管理控制台中,如果尝试指定 0.1(或 0,1)分钟,则会显示错误
话虽如此,似乎您可以使用Rest Full API 绕过该限制。首先,代表管理员请求一个令牌,提取其访问令牌(我们称之为$ACCESS_TOKEN
)。然后调用以下端点:
PUT <KEYCLOAK_HOST>/auth/admin/realms/<REALM_NAME>
以下数据
'"accessTokenLifespan":30'
现在,如果您在 Realm REALM_NAME
上为客户端请求令牌,您将获得以下信息:
"access_token":"...","expires_in":30,"...
30 秒作为访问令牌的到期时间。
现在,我还没有对此进行测试,所以由您来确定一切是否仍然正常工作。
【讨论】:
以上是关于如何设置访问令牌在几秒钟内过期的主要内容,如果未能解决你的问题,请参考以下文章