方案是我有两个资源微服务(使用Spring Security担保),让我们假设A& B. A想要以预定的方式从B收集数据,因为A将每小时呼叫B的端点以收集一些数据。 捕获是两个资源服务可以相互通信,如果他们有一个有效的访问令牌或我们可以说用户登录。 但是,预定作业必须独立于登录用户而独立运行。那么从A中调用B的正确方法应该是什么呢?
一个。要让超级默认用户配置以运行预定作业,请进行隐式身份验证吗?
注意:预定作业与用户干预无关。
答案 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/