Oauth 2.0 如何减少KeyClope中访问/刷新令牌的大小?

Oauth 2.0 如何减少KeyClope中访问/刷新令牌的大小?,oauth-2.0,jwt,token,keycloak,Oauth 2.0,Jwt,Token,Keycloak,我正在设置KeyClock身份验证服务器,以允许授权用户访问受保护的资源(OAuth2.0) 访问将通过具有特定限制的嵌入式设备完成。主要限制是,如果访问和刷新令牌的长度超过256个字符,则无法保存它们 虽然in对令牌大小保持沉默,但所有身份提供者都可以自由决定令牌大小。例如,Facebook的令牌小于256字节,谷歌也是如此。但是对于keycloack,我得到一个大约850字节的令牌!我在管理控制台中尝试了几种可用的加密算法,但仍然得到了一个大的jwt令牌。 对jwt的解码给出以下结果: {

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

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

虽然in对令牌大小保持沉默,但所有身份提供者都可以自由决定令牌大小。例如,Facebook的令牌小于256字节,谷歌也是如此。但是对于keycloack,我得到一个大约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以下?如果没有,我能得到的最好结果是什么


提前感谢

代币大小的一个方面是角色。如果您不需要在令牌中包含角色,因为您不关心角色,或者您以不同的方式查询角色(通过admin api直接访问),那么使用客户端作用域删除不必要的角色。我知道这可能不是你想听到的,但它可能有助于某些人将其令牌设置为1MB以下;)


提示:您不需要创建“客户机范围”。在“客户端配置”选项卡中启用特定作用域并将其保留为空就足够了:keydape Amdmin UI>Client>tab:Scope>Disable:Full Scope Allowed

还要尝试更改签名算法。RSA256~354符号,ESA256-86符号,HS256-43符号。可以使用realm->token->default token算法进行配置,或者在客户端页面上进行配置!你找到解决办法了吗?到目前为止没有。。。我必须通过将代币分成4个不同的部分来解决这个问题。。。浪费了处理时间。听到这样的消息很难过:(