在不往返授权服务器的情况下检查访问令牌的有效性?
Posted
技术标签:
【中文标题】在不往返授权服务器的情况下检查访问令牌的有效性?【英文标题】:Checking the validity of access tokens without round tripping to the authorization server? 【发布时间】:2018-02-19 03:30:12 【问题描述】:使用 oauth 访问令牌的有效性必须由授权服务器检查。有没有办法做到这一点,而无需对资源服务器的每个请求都往返授权服务器?我已经对 JWT 进行了一些阅读,似乎因为 JWT 可以签名,它应该能够由资源服务器验证而无需访问授权服务器? IIUC 是否有一些标准/简单的方法可以使用 spring security oauth 做到这一点?
【问题讨论】:
【参考方案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。
【讨论】:
以上是关于在不往返授权服务器的情况下检查访问令牌的有效性?的主要内容,如果未能解决你的问题,请参考以下文章
我可以在不注册我的自动测试应用程序的情况下在 Azure 上获取访问令牌吗?
OAuth 2.0实现分布式认证授权-jwt令牌和普通令牌的区别