【发布时间】:2021-04-26 03:50:51
【问题描述】:
我在配置 Redhat Single SigOn (RHSSO) 或 Keycloak 令牌在几秒钟内到期时遇到问题,大约 30 秒。
我在几分钟内就找到了配置。有办法调整到秒吗?
【问题讨论】:
标签: token keycloak keycloak-services redhat-sso
我在配置 Redhat Single SigOn (RHSSO) 或 Keycloak 令牌在几秒钟内到期时遇到问题,大约 30 秒。
我在几分钟内就找到了配置。有办法调整到秒吗?
【问题讨论】:
标签: token keycloak keycloak-services redhat-sso
从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 秒作为访问令牌的到期时间。
现在,我还没有对此进行测试,所以由您来确定一切是否仍然正常工作。
【讨论】: