我想实现一个OpenID连接服务器,我不知道我应该如何为客户端管理JWK ?只是一个JWK来生成所有JWT令牌,还是为每个客户端生成JWK ?我很感谢任何教程链接来帮助我。
每个客户端应该有自己的JWK。OpenID Connect动态客户端注册1.0将jwks
和jwks_ur
定义为客户端元数据。
好的,我研究了一下,我得到的是:
-
Google使用单个端点来获取JWK并验证签名。
-
Auth0为每个租户使用单个私钥,因此它为该租户中的所有客户端使用单个公钥/私钥。
-
Keycloak在每个realm中使用一个key。因此,该领域中的所有客户端都使用该单一公钥。
我的结论如果我们的OP是多租户的,那么每个租户的公钥/私钥可以是唯一的,否则将为所有客户端使用单个公钥/私钥对。请注意,我们也应该有键旋转。