JWT Authentication SOA的“共享秘密”

时间:2017-10-24 16:50:31

标签: java oauth-2.0 jwt soa

我有几个服务,我正在使用OAuth2和授权服务器,它返回JWT令牌。我将使用相同的JWT令牌来授权我的所有服务(如果这是一个好方法,请告诉我)。此外,如果我遵循这种方法,我将需要在我的所有服务之间分享我的秘密(签名)。请告诉我这是否是一个好方法(我认为应该有一些常见的秘密存储,如果有更新,它应该更新所有服务的秘密,但我不确定是否有现有的解决方案,以及这个解决方案还可以。)

提前致谢,

1 个答案:

答案 0 :(得分:1)

为了更好的安全性,建议使用私钥/公钥方法而不是共享密钥。 JWKS是此类实施的标准。我们的想法是,您在OAuth2服务器上保留私钥和公钥,并让您的服务回调OAuth2以获取公钥以验证JWT令牌。出于性能原因,您可以缓存该公钥,以便在每次验证时都不会调用OAuth2服务器。

如果您使用的是Spring,还可以使用org.springframework.security.oauth2.provider.token.store.jwk.JwkTokenStore为您执行验证和缓存。

您也可以使用共享密钥执行相同的操作,但这需要HTTPS连接回OAuth2服务器,以免在网络上公开它。

相关问题