我想在OIDC中为Request Object使用加密的本地PASETO令牌,但结果是我需要在某个地方存储密钥来解密这个请求对象,而且它必须是可用的未加密/未散列的,因为它需要Request Object来解密。所以我必须将它作为纯文本存储在数据库中吗?相当危险。因此,我开始想知道JWE是如何工作的,但是来自https://datatracker.ietf.org/doc/html/rfc7516#section-5.1的关于JWE加密的文档对我来说是相当混乱的。JWE是解决了将对称密钥以纯文本形式存储在数据库中的问题,还是有其他方法?
发布于 2022-07-12 13:13:38
这里有几种不同的解决方案,它们解决了不同的问题:
加密JWTs
当应用程序想要防止信息泄露时,可以使用这些信息。它们由授权服务器发出,该服务器使用公钥对它们进行加密。然后,应用程序就有了维护私钥来解密它们的负担。有关一些示例用法,请参见加密ID令牌。
请求对象
这些经常用于防止man in the browser的篡改。该应用程序只需要处理公钥,它已经可以访问,因此解决方案更容易管理。使用新的标准,如PAR和JARM,就像在本摘要中一样。
JWT信息披露
如果要避免在访问令牌JWT中显示敏感数据,则通常的技术是只向internet客户端返回不透明的访问令牌。这比加密更容易管理。有关此操作的工作方式,请参阅幻象令牌模式。
摘要
我通常会避免将密钥管理引入应用程序。目的是在授权服务器中进行管理。
https://stackoverflow.com/questions/72949010
复制相似问题