1

我在配置 Redhat Single SigOn (RHSSO) 或 Keycloak 令牌在几秒钟内到期时遇到问题,大约 30 秒。

我只是在几分钟内找到了配置。有没有办法把它调整到秒?

4

1 回答 1

1

Keycloak 管理控制台这是不可能的;Keycloak 允许以MinutesHours或为单位指定访问令牌过期时间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 秒作为访问令牌的到期时间。

现在,我还没有对此进行测试,因此您可以自行确定一切是否仍能正常工作。

于 2021-01-21T17:32:37.497 回答