6

我有两个微服务,例如 A 和 B。微服务 B 的其余端点必须只能从微服务 A 访问。如何限制微服务之间的访问?如果可能的话,最好的做法是什么?

我正在使用弹簧云安全性(oauth2,jwt)。

4

2 回答 2

3

这是一个网络问题。只需在网络级别限制对微服务 B 的访问。例如,如果使用 Docker,这可以很容易地完成。您不会公开为微服务 B 公开相关端口,而是在特定网络上公开它,然后让微服务加入该网络。

如果您想增加额外的安全性,您可以使用公钥/私钥。或者,为应用程序 A 生成 JWT 并在微服务 B 中验证它会更简单,但是随着您添加更多微服务,这会产生更多管理开销。

或者,您应该查看可以为您处理 API 访问的 API 网关

于 2016-07-22T05:02:04.677 回答
0

有另一个微服务,它不是对业务问题负责,而是对非功能性业务问题负责:安全性。

这个微服务是合乎逻辑的(因为所有微服务都应该在逻辑上对业务问题负责)并且不是单独部署的,而是与其他微服务一起部署的。然后在接受任何调用或执行调用之前构建一个适当的 API,微服务 A 和 B 都知道并强制执行。

如果其他微服务应该是某些业务相关边界(有界上下文,如果您愿意的话)的一部分,则安全微服务在非功能性需求的边界内。你可以称之为 IT/Ops 或 Devops 之类的。

于 2016-06-17T08:24:09.637 回答