Saf*_*wen 11 token oauth-2.0 jwt keycloak
我正在设置一个 keycloack 身份验证服务器,以允许授权用户访问受保护的资源 (OAuth2.0)。
访问将通过具有某些限制的嵌入式设备完成。主要限制是访问和刷新令牌如果超过 256 个字符则无法保存。
虽然在OAuth 2.0 授权框架中对令牌大小保持沉默,但所有身份提供者都可以自由决定令牌大小。比如Facebook的token小于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"
}
Run Code Online (Sandbox Code Playgroud)
我实际上对令牌中的数据根本不感兴趣,我也没有解析它。我只需要令牌就可以访问资源。因此,有没有办法将令牌的大小减少到小于 256?如果不是,我能得到的最好结果是什么?
先感谢您
小智 2
代币大小的一方面是角色。如果您不需要将角色包含在令牌中,因为您不关心角色或者您以不同的方式查询角色(例如,通过管理 api 直接访问),则使用客户端范围来删除不必要的角色。我知道这可能不是您想听到的,但它可能会帮助某些人将其令牌降至 1 kB 以下;)
提示:您不需要创建“客户端范围”。在“客户端配置”选项卡中启用特定范围并将其留空就足够了:Keycloak 管理 UI > 客户端 > 选项卡:范围 > 禁用:允许完整范围
| 归档时间: |
|
| 查看次数: |
2074 次 |
| 最近记录: |