【发布时间】:2018-05-09 22:47:39
【问题描述】:
我正在尝试配置 Spring Boot 授权和资源服务器,每个服务器都在不同的服务器上。 The tutorial 没有说明如何在不同的服务器上具体配置资源和授权服务器。
如果您的资源服务器是一个单独的应用程序,那么您必须 确保您与授权服务器的功能相匹配,并且 提供一个知道如何解码的 ResourceServerTokenServices 标记正确。[这是什么意思以及如何做到这一点?]
与 DefaultTokenServices 一样,选择主要通过 TokenStore(后端存储或本地编码)。另一种选择是 RemoteTokenServices 是 Spring OAuth 特性(不是 规范)允许资源服务器通过 HTTP 解码令牌 授权服务器上的资源 (/oauth/check_token)。 如果没有大量的远程令牌服务很方便 资源服务器中的流量(每个请求都必须通过 授权服务器),或者如果您有能力缓存结果。 要使用 /oauth/check_token 端点,您需要通过 在 AuthorizationServerSecurityConfigure与Authorization Server一样,可以经常使用。
据我了解,有一个建议的解决方案是资源服务器调用授权服务端点,但如上所述,这只能在资源服务器中没有大量流量的情况下完成,但如果确实存在呢?
【问题讨论】:
-
认证服务器和资源服务器使用同一个数据库吗?
-
@dur 不,我不......你的意思是一种方法是共享同一个数据库?
-
是的,我认为这是最简单的方法。另一种选择可能是 JWT。
-
我有一个示例代码可以回答您的问题 - github.com/OhadR/oAuth2-sample。你可以在这里找到所有 3 个组件,每个都是一个单独的 WAR,可以部署在具有自己的 servlet 容器(例如 Tomcat)的不同机器上
标签: spring spring-security oauth spring-oauth2