我正在草拟一个简单的应用程序,它将包含三个松散耦合的服务:身份验证(在弹簧安全下使用OAuth2),配置文件和首选项,数据收集。我正在尝试确定在这些服务之间保护或构建安全呼叫的最佳方法。考虑以下两个用户案例。在每种情况下,用户都已经过身份验证,请求将包含有效的JWT令牌到初始服务端点:
案例1:用户想要编辑他们对首选水果的偏好。应用程序将对Profile / Preference服务进行经过身份验证的调用以获取其首选项,然后POST回更新的首选项。
案例2:他们向Data Collection服务发出请求,该服务将在杂货店API中查询水果价格。这需要从个人资料和偏好服务中查找他们喜欢的水果。
我遇到的问题是保护上述案例2的个人资料和偏好服务的最佳方法。我觉得有三种可能的方法:
Spring Boot的一个方面提供了开箱即用的东西吗?
答案 0 :(得分:-1)
由于微服务带来了独立应用程序,智能应用程序和哑管的概念,您已经可以摆脱解决方案3。,这需要某种网络 - 基于安全。
如果我可以用自己的方式翻译您的问题:
您想要做什么:客户 - > App1 - >应用2
问题:如何保护从App1到App2的呼叫
剩下的两个解决方案:
解决方案2。的问题在于它可能带来权限问题:
如果调用App1的客户端没有调用App2的权限(范围),App1将会调用App2,因为App1将拥有自己名称的权限。
结论:解决方案1。是唯一可行的。