两个Resource MicroServices之间的预定通信

时间:2017-03-20 09:30:24

标签: java security spring-boot authorization microservices

方案是我有两个资源微服务(使用Spring Security担保),让我们假设A& B. A想要以预定的方式从B收集数据,因为A将每小时呼叫B的端点以收集一些数据。 捕获是两个资源服务可以相互通信,如果他们有一个有效的访问令牌或我们可以说用户登录。 但是,预定作业必须独立于登录用户而独立运行。那么从A中调用B的正确方法应该是什么呢?

一个。要让超级默认用户配置以运行预定作业,请进行隐式身份验证吗?

注意:预定作业与用户干预无关。

2 个答案:

答案 0 :(得分:2)

最好将所有服务保留在世界之外(网络级隔离),除了一个服务,即单一入口点,用于您的客户端身份验证/授权处理。因此,您只需要在该服务上实现与安全相关的操作/验证,而不是让客户的请求通过其他服务。

由于您将服务与世界隔离,而在其余服务上实施无安全性,因此您无需使用令牌或验证来进行服务间通信。

答案 1 :(得分:0)

当我们使用API​​安全性时,最常用的协议是OAuth 2.0。

在处理客户端服务身份验证/授权时,最合适的访问令牌配置将由授权代码流进行。

但是,在处理服务到服务身份验证/授权时,最合适的访问令牌配置将由JWT授权流程进行。在这种情况下,请求者需要使用私钥生成JWT令牌。

但是如果想要保持简单并且网络限制到位,您可以在OAuth中使用简单的客户端信号流。

在nordicapi博客中有一个关于使用OAuth 2.0处理批量处理的有趣话题:

http://nordicapis.com/how-to-handle-batch-processing-with-oauth-2-0/

有关更多信息,请查看以下链接:

http://websystique.com/spring-security/secure-spring-rest-api-using-oauth2/

http://blog.monkey.codes/how-to-use-jwt-and-oauth-with-spring-boot/