同一应用程序的令牌发行者之间共享的签名密钥的安全性

Security of signing keys shared between token issuers for the same application

想象一下,我们有一个令牌颁发者负责 OAuth 授权代码流,另一个负责客户端凭证流,两者都专门为同一应用程序提供 JWT。这两个令牌发行者不应使用相同的签名密钥是否有充分的安全理由?

我没有发现在两个应用程序之间共享相同的私人签名密钥有任何重大安全问题。但这完全取决于您的安全级别以及您将如何处理密钥的轮换和管理。

但是,如果其中一家供应商遭到黑客攻击,那么另一家供应商当然也容易受到攻击。但我认为答案是视情况而定。

许多 IdentityProvider 支持多个签名密钥,也许一个客户端需要比其他客户端更强大的 key/singing 方案。或者一个系统只需要使用 RSA 和一些其他必需的 ECDSA 密钥。

但是,您通常会对授权代码流客户端凭据流使用相同的身份提供者。因为 API 接收访问令牌更喜欢让单个提供商从中下载 public 密钥。