我有三个服务器:-授权服务器- api服务器-前端服务器
授权服务器返回JWT自包含访问令牌(+刷新令牌)。JWT不存储在授权服务器中的任何位置。我想用非对称加密保护JWT,我不确定我的想法是否正确。让我来描述一下流程:
在这种情况下,授权服务器和API服务器需要存储用于解密的私钥。这个解决方案够安全吗?在两个服务器中存储相同的私钥可以吗?你知道流程是否正确吗?或者数据流应该是不同的?
发布于 2020-02-19 19:56:05
我想用非对称加密保护JWT,我不确定我的想法是否正确。
一般来说,数据加密是个好主意。尤其是当您传输敏感数据时。
让我描述一下flow…在这种情况下,授权服务器和API服务器需要存储用于解密的私钥。这个解决方案够安全吗?在两个服务器中存储相同的私钥可以吗?你知道流程是否正确吗?或者数据流应该是不同的?
如果我正确理解您的流程,令牌将在授权服务器端加密,并在API服务器端解密。因此,您希望阻止客户端读取其内容。
这种流动是绝对好的。AS和API服务器都将具有共享的秘密,以便它们能够加密或解密令牌。
我建议您阅读更多关于JWE (加密的JWT)和相关的RFC7516的内容。此规范描述了加密令牌的标准方法。根据您使用的编程语言,您可能会发现支持JWE的库。https://jwt.io/列出了许多库,其中一些支持比签名令牌(JWS)更多。例如,Com.尼姆布兹/尼姆布斯-何塞-jwt (Java)或web-令牌/jwt-框架 (PHP)。
可能的流程如下所示。请不要认为它无疑会在您的AS和API服务器代码中造成复杂性。因此,在实现它之前,应该确保加密令牌!(例如,传输敏感数据)是必要的。
https://stackoverflow.com/questions/60285098
复制相似问题