【问题标题】:Assymetric signing algorithms for JWT signingJWT 签名的非对称签名算法
【发布时间】:2021-11-06 23:48:34
【问题描述】:

这里是 JWT 新手,如果这是一个愚蠢的问题,很抱歉:是否可以使用非对称密钥/证书/等对 JWT 进行签名?

如果我对 JWT 的理解正确,其想法是客户端可以使用它们向服务器进行身份验证,因为它们包含服务器可以检查的签名。

我在网上看到的所有示例都依赖相同的密钥来创建和验证 JWT。

现在,如果我想为不同的服务器发布 JWT 并且这样做,我必须给他们我的密钥(可能每个服务器一个),他们就可以使用它来发布 JWT。我可能不想允许这样做。此外,每台服务器只能验证专门为其创建的 JWT 或具有相同密钥的 JWT。

另一方面,我确实知道可以使用异步算法对事物进行签名,这样您就可以使用公钥验证签名,但只能使用私钥进行签名。

这将解决问题,因为每个想要接受我的服务器签名的 JWT 的服务器只需要下载我的公钥。 JWT中是否存在这种东西?

【问题讨论】:

  • 是的,当然,你可以用非对称密钥签名,也许你没有找到答案,因为用错了,它是非对称什么你需要搜索,你应该能够找到很多教程,还有 answers on SO 解释。

标签: jwt authorization public-key-encryption


【解决方案1】:

我认为您的意思是非对称算法,而不是异步算法。

简短的回答是肯定的 - 您可以使用 RS512 等非对称算法使用私钥签署令牌,然后使用匹配的公钥对其进行验证。这样您就不必在签署令牌的服务之外共享秘密。

请注意,不同的库可能支持不同的算法,因此请务必检查您使用的库支持哪些算法。 JWT.io 有一个非常全面的列表,列出了哪些库支持哪些算法。

【讨论】:

  • 你说的很对通过异步实现不对称...我当时一定很累...
猜你喜欢
  • 2020-07-10
  • 2012-08-02
  • 2019-11-03
  • 2022-01-26
  • 1970-01-01
  • 2017-03-20
  • 2017-07-12
  • 1970-01-01
  • 2018-05-08
相关资源
最近更新 更多