我在配置 Redhat Single SigOn (RHSSO) 或 Keycloak 令牌在几秒钟内到期时遇到问题,大约 30 秒。
我只是在几分钟内找到了配置。有没有办法把它调整到秒?
我在配置 Redhat Single SigOn (RHSSO) 或 Keycloak 令牌在几秒钟内到期时遇到问题,大约 30 秒。
我只是在几分钟内找到了配置。有没有办法把它调整到秒?
从Keycloak 管理控制台这是不可能的;Keycloak 允许以Minutes
、Hours
或为单位指定访问令牌过期时间Days
,但不能以秒为单位:
但是,当请求令牌时,过期时间以秒为单位显示,即:
{"access_token":"...","expires_in":60,"...}
您可以通过 Admin Console 设置的最短时间为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 秒作为访问令牌的到期时间。
现在,我还没有对此进行测试,因此您可以自行确定一切是否仍能正常工作。