微服务架构澄清

时间:2017-08-18 17:36:48

标签: c# microservices

我有一个微服务架构应用程序。我有一个CompanyService,一个OrderService和一个TransactionSevice。用户登录并且他可以加载他公司的所有订单。所以订单有一个CompanyId。然后它加载该订单的所有交易,因此该交易具有OrderId。我正在经历一些安全想法。如何确保用户仅加载或保存属于其公司的订单的交易。我的意思是TransactionService不需要知道公司(CompanyId)。这是我应该在保存之前检查的东西吗?例如,检查orderid是属于公司还是有其他模式?

由于

2 个答案:

答案 0 :(得分:1)

我的想法:

你的第一个微服务将是

GetOrders(int userId)

在其中,您需要检查userId拉哪家公司

你的第二个电话将是

GetTransactions(int orderId)

根据您想要的安全程度,您还可以执行以下操作:

GetTransactions(int orderId, int userId)

要在API滥用的情况下,请检查拨打电话的用户是否属于正确的公司。所以基本上,是的,你必须检查用户是否属于他们正在进行交易的公司。

答案 1 :(得分:0)

您可能更喜欢通过接口服务添加某种程度的编排,以便用户与其他服务进行交互……这需要权衡,例如可能会造成瓶颈和单点故障。

用户的接口/代理服务可以强制正确使用 API。

另一个选项,如其他答案中提到的,是在内部使用令牌,但每个其他服务可能必须使用身份验证服务验证该令牌,然后使用 userId 从其他服务请求数据。