首页 > 解决方案 > 如何减少 Keycloak 中访问/刷新令牌的大小?

问题描述

我正在设置一个密钥锁身份验证服务器以允许授权用户访问受保护的资源(OAuth2.0)。

访问将通过具有某些限制的嵌入式设备完成。主要限制是如果访问和刷新令牌超过 256 个字符,则无法保存。

虽然在OAuth 2.0 授权框架中对令牌大小保持沉默,但所有身份提供者都可以自由决定令牌大小。例如,Facebook 的令牌小于 256 字节,谷歌也是如此。但是对于 keyclock,我得到一个大约 850 字节的令牌!我已经尝试了管理控制台中可用的几种加密算法,但我仍然获得了一个大的 jwt 令牌。解码 jwt 给出以下结果:

{
  "jti": "d654564qsd-5fqsdf5-4qsdf-8b25qs-b556456",
  "exp": 1556284611,
  "nbf": 0,
  "iat": 1556270211,
  "iss": "http://myadress:myport/auth/realms/myrealm",
  "aud": "myapp",
  "sub": "45464-445645-4b45641e-456456-45645646",
  "typ": "Bearer",
  "azp": "myapp",
  "auth_time": 1556269490,
  "session_state": "cb95519c-0bf8-4b6b-94e4-a10d9000dbd2",
  "acr": "0",
  "allowed-origins": [],
  "realm_access": {
    "roles": [
      "user"
    ]
  },
  "resource_access": {},
  "scope": "readwrite"
}

我实际上对令牌中的数据根本不感兴趣,我也没有解析它。我只需要令牌就可以访问资源。因此,有没有办法将令牌的大小减少到 256 以下?如果不是,我能得到的最好结果是什么?

先感谢您

标签: oauth-2.0jwttokenkeycloak

解决方案


还尝试更改签名算法。RSA256 ~354 个符号,ESA256 - 86 个符号,HS256 - 43 个符号。可以使用领域 -> 令牌 -> 默认令牌算法或在客户端页面上进行配置


推荐阅读