在不往返授权服务器的情况下检查访问令牌的有效性?
Checking the validity of access tokens without round tripping to the authorization server?
使用 oauth 访问令牌的有效性必须由授权服务器检查。有没有办法做到这一点,而无需为对资源服务器的每个请求往返授权服务器?我已经阅读了一些关于 JWT 的文章,看起来既然 JWT 可以被签名,它应该能够被资源服务器验证而不用去授权服务器? IIUC 是否有一些标准/简单的方法可以使用 spring security oauth 来做到这一点?
JWT 不需要回调授权服务器。您可以使用:
1) 用于签署和验证 JWT 令牌的客户端密钥。密钥将同时存储在授权服务器和您的应用程序中。
2) 或者最好使用像 JWK 这样的 private/public 密钥来签署和验证令牌。私钥将存储在授权服务器端,并在您的应用程序中存储 public 令牌。您可以选择从授权服务器获取 public 密钥,将其缓存并在一段时间后刷新。有关详细信息,请参阅 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。
使用 oauth 访问令牌的有效性必须由授权服务器检查。有没有办法做到这一点,而无需为对资源服务器的每个请求往返授权服务器?我已经阅读了一些关于 JWT 的文章,看起来既然 JWT 可以被签名,它应该能够被资源服务器验证而不用去授权服务器? IIUC 是否有一些标准/简单的方法可以使用 spring security oauth 来做到这一点?
JWT 不需要回调授权服务器。您可以使用:
1) 用于签署和验证 JWT 令牌的客户端密钥。密钥将同时存储在授权服务器和您的应用程序中。
2) 或者最好使用像 JWK 这样的 private/public 密钥来签署和验证令牌。私钥将存储在授权服务器端,并在您的应用程序中存储 public 令牌。您可以选择从授权服务器获取 public 密钥,将其缓存并在一段时间后刷新。有关详细信息,请参阅 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。