微服务架构,身份验证和其他服务

时间:2015-05-05 13:02:18

标签: java web-services api amqp microservices

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

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

我的问题是,当网关上的用户请求时,他发送一个访问令牌(无状态,oauth2.0,无论如何),然后网关询问身份验证服务,如果用户存在并拥有权限,他访问重新提供其他服务。

没关系,但如果我尝试直接从主持人那里直接打电话给BillingService怎么办?您可以告诉我端口已关闭,我同意。

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

我错过了什么吗?

感谢您提前

1 个答案:

答案 0 :(得分:3)

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

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