我正在设置一个Keycloak身份验证服务器,以允许经过授权的用户访问受保护的资源(OAuth2.0)。
该访问将通过具有某些限制的嵌入式设备完成。主要限制是如果访问和刷新令牌超过256个字符,则无法保存访问和刷新令牌。
虽然在OAuth 2.0授权框架中未提及令牌大小,但所有身份提供者都可以自由决定令牌大小。例如,Facebook的令牌少于256字节,Google的令牌也是如此。但对于Keycloak,我得到了约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?如果没有,我能得到的最佳结果是什么?
预先感谢你