在没有往返授权服务器的情况下检查访问令牌的有效性?

时间:2017-09-10 23:17:45

标签: java oauth jwt spring-cloud spring-security-oauth2

使用oauth访问令牌时,授权服务器必须检查其有效性。有没有办法在没有为资源服务器的每个请求往返授权服务器的情况下执行此操作?我已经对JWT进行了一些阅读,看起来JWT可以签名,它应该可以由资源服务器验证而无需进入授权服务器? IIUC是否有一些标准/简单的方法来实现Spring security oauth?

1 个答案:

答案 0 :(得分:1)

JWT不需要回拨授权服务器。您可以使用:

1)用于签署和验证JWT令牌的客户端密钥。密钥将存储在授权服务器和您的应用程序中。

2)或者最好使用像JWK这样的私钥/公钥来签名和验证令牌。私钥将存储在授权服务器端,并在您的应用中存储公共令牌。您可以选择从授权服务器获取公钥,缓存它并在一段时间后刷新。有关详情,请参阅https://github.com/spring-projects/spring-security-oauth/blob/master/spring-security-oauth2/src/main/java/org/springframework/security/oauth2/provider/token/store/jwk/JwkTokenStore.java