【问题标题】:How to set access token to expire in seconds如何设置访问令牌在几秒钟内过期
【发布时间】:2021-04-26 03:50:51
【问题描述】:

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

我在几分钟内就找到了配置。有办法调整到秒吗?

【问题讨论】:

    标签: token keycloak keycloak-services redhat-sso


    【解决方案1】:

    Keycloak Admin Console 是不可能的; Keycloak 允许在MinutesHoursDays 中指定访问令牌的过期时间,但不能以秒为单位:

    虽然,当请求令牌时,过期时间以秒为单位显示,即:

    {"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 秒作为访问令牌的到期时间。

    现在,我还没有对此进行测试,所以由您来确定一切是否仍然正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-12
      • 2021-07-04
      • 1970-01-01
      • 1970-01-01
      • 2020-05-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多