11

一般来说,我对微服务和 api 网关的概念相当陌生。我试图了解 api 网关在使用许多微服务的现代 Web 应用程序中所扮演的角色。我一直在阅读 express-gateway 的文档和教程,但对 Web 应用程序如何使用 express-gateway 等设置的 api 网关执行身份验证有点困惑。

我的 Web 应用程序将有多个可以与之通信的微服务。我认为在我所有的微服务前面放置一个 API 网关可以使每个微服务都不需要担心用户/请求是否经过身份验证,因为如果正在与微服务对话,则意味着 api 网关已验证请求是有效用户。我对此的理解正确吗?

假设我认为 api 网关充当其他微服务的看门人的想法是正确的,我的后续问题是关于它如何执行的细节。

这是否意味着所有的用户创建和认证都是由 api 网关执行的?这意味着我将没有自定义用户创建/登录微服务?或者我是否可以通过 api 网关自定义用户创建微服务公开访问,该微服务在创建时本身会在 api 网关中创建用户帐户?我的微服务现在是否将用户信息复制到某个数据库和快速网关自己的存储中?我想我的普遍困惑是 API 网关是否完全远离 Web 应用程序自己的微服务,或者您仍然需要这两个部分?

我认为我自己的身份验证微服务将首先验证用户,然后使用 api 网关生成有效的短期令牌,但是阅读有关在 express-gateway 中创建用户或应用程序帐户以进行身份​​验证的信息让我对每个角色所扮演的角色感到困惑。

4

1 回答 1

6

要大致了解 API 网关在基于微服务的解决方案中的作用,我建议您看一下我几个月前做的这个演示文稿。那应该稍微澄清一下事情。

我对此的理解正确吗?

是的,你明白了。如果您观看视频,您实际上也可以在实践中看到该概念。

对于存储,这取决于。

Express Gateway 提供了一部分身份服务,例如用户、应用程序和凭证。它们足以满足大多数应用程序的使用,但您可能会发现自己需要使用外部服务,例如 Auth0。

现在,撇开功能不谈——您将数据存储在哪里,完全取决于您。您可以将部分数据保存在 Express Gateway 中,而将部分数据保存在您自己的数据库中,或者完全保存在 Express Gateway 中。这里没有好的或坏的策略。

于 2018-07-30T16:04:45.747 回答