我在我的应用程序中实现了 Oauth2 以保护 API 调用。我的 Oauth 和资源服务器位于两个单独的物理机上(但在同一网络上)。对于资源服务器上的每次调用,它都需要调用 Oauth 服务器进行 Oauthtoken 验证。
一天之内,我的资源服务器收到数百万个请求。目前为了验证 Oauth 令牌,我正在使用从资源服务器到 Oauth 服务器的休息调用。
有没有办法让这更快,因为每个呼叫都需要重定向到 Oauth 服务器?webSockets 能解决这个问题吗?
我在我的应用程序中实现了 Oauth2 以保护 API 调用。我的 Oauth 和资源服务器位于两个单独的物理机上(但在同一网络上)。对于资源服务器上的每次调用,它都需要调用 Oauth 服务器进行 Oauthtoken 验证。
一天之内,我的资源服务器收到数百万个请求。目前为了验证 Oauth 令牌,我正在使用从资源服务器到 Oauth 服务器的休息调用。
有没有办法让这更快,因为每个呼叫都需要重定向到 Oauth 服务器?webSockets 能解决这个问题吗?
如果您不需要撤销单个访问令牌,则可以使用无状态(JSON Web 令牌)JWT 令牌。JWT 不需要在授权服务器上进行验证。只要 JWT 令牌由授权服务器签名(非对称加密),您就可以使用授权服务器的公钥在资源服务器本身上验证令牌。
这使得快速授权(因为它跳过了服务器到服务器的往返)以易于撤销为代价。
注意:您也可以使用共享密钥(对称加密),但您需要确保所有相关方都拥有共享密钥(并保密)。
查看 spring-security-jwt 和https://jwt.io/