我已经创建了一个基本的JWT生成器,但是需要一些方面的建议。我一直在用
JWT.io
auth0/java-jwt
生成标记的库/repo。
正在使用RSA512算法使用4096位密钥对刷新令牌进行签名。
.sign(Algorithm.RSA512(rsaPublicKey, rsaPrivateKey));
访问令牌通过RSA256算法使用1024位RSA密钥进行签名。
.sign(Algorithm.RSA256(rsaPublicKey, rsaPrivateKey));
另一方面,访问令牌在资源服务器端点进行验证,并且它们被发送的频率更高,因此我选择了一个更短的(256)签名,该签名是用更快的1024位密钥执行的。
我将jks(keystore)保存在auth服务器和资源服务器上的一个私有文件夹中。
我需要刷新/形成新密钥吗?如果是…多久一次?
推荐的方法是什么?
负载平衡器后面可能有多个auth和资源微服务实例…因此RAM生成的密钥是no,因为它们不会在实例之间传播。
我看了一下可能有一个“密钥服务器”,可以说创建新的密钥并将它们附加到密钥库中,然后分发新的jks文件以使用新的密钥对进行更新。。。与此类似:
例如,每隔15秒,EC2认证服务器和资源服务器ping密钥服务器,请求当前jks的副本(和版本检查)。
有什么建议吗?
谢谢您!