2

我正在研究微服务架构,我有一个问题。

承认我在不同的主机上有多个服务,如下所示:

我的问题是,当用户在网关上请求时,他发送了一个访问令牌(无状态,oauth2.0 等),然后网关询问身份验证服务,如果用户存在并具有权限,他访问另一个资源服务。

没关系,但是如果我尝试直接从他的主机调用 BillingService 怎么办?你可以告诉我港口已经关闭,我同意。

但这是否意味着它们只允许从某个主机到另一个主机?意味着仅允许从网关机器上的端口 1234 上的计费服务?

我错过了什么吗?

感谢提前

4

1 回答 1

3

计费服务需要保护自己。在这种情况下,您不能仅依靠网络安全。计费服务保护自己的方式是检查令牌/会话是否仍处于活动状态。这不应由业务逻辑完成,而应由您正在使用的安全框架完成。

例如,在之前的项目中,我们使用 CAS 来保护我们的服务。 是将 CAS 过滤器添加到 Servlet 容器的说明。因此,为了保护我的服务,我只需将这些过滤器包含到我的 web.xml 和适当的 jar 文件中。这些 CAS 过滤器将拦截每个请求并验证令牌/会话是否处于活动状态以及用户是否已登录。您可能没有使用 CAS,但方法应该类似。希望您不必编写自定义代码来检查 HTTP 请求并验证它在您的计费服务中是否具有适当的活动令牌/会话。

于 2015-05-05T15:27:03.343 回答