oauth-2.0 - 如何减少 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 以下?如果不是,我能得到的最好结果是什么?
先感谢您
解决方案
还尝试更改签名算法。RSA256 ~354 个符号,ESA256 - 86 个符号,HS256 - 43 个符号。可以使用领域 -> 令牌 -> 默认令牌算法或在客户端页面上进行配置
推荐阅读
- c++ - 如何使用 g2o 优化多约束函数
- java - 开关:重复的情况
- url - 使用两个端口在同一 IIS 服务器中托管两个网站
- javascript - 为什么条形图彼此重叠
- python - 将列表中的平面列表添加到固定长度的 numpy 数组中
- powershell - 将带前缀的文件放在带编号的文件夹中
- java - JSTL - fmt:message 和 fmt:param toLowerCase
- reactjs - 调用同级组件函数时获取 null
- flutter - 在 Flutter 应用上发布 youtube 视频是否合法?
- accessibility - 使用 cypress-axe 测试可访问性