一般来说,我对微服务和 api 网关的概念相当陌生。我试图了解 api 网关在使用许多微服务的现代 Web 应用程序中所扮演的角色。我一直在阅读 express-gateway 的文档和教程,但对 Web 应用程序如何使用 express-gateway 等设置的 api 网关执行身份验证有点困惑。
我的 Web 应用程序将有多个可以与之通信的微服务。我认为在我所有的微服务前面放置一个 API 网关可以使每个微服务都不需要担心用户/请求是否经过身份验证,因为如果正在与微服务对话,则意味着 api 网关已验证请求是有效用户。我对此的理解正确吗?
假设我认为 api 网关充当其他微服务的看门人的想法是正确的,我的后续问题是关于它如何执行的细节。
这是否意味着所有的用户创建和认证都是由 api 网关执行的?这意味着我将没有自定义用户创建/登录微服务?或者我是否可以通过 api 网关自定义用户创建微服务公开访问,该微服务在创建时本身会在 api 网关中创建用户帐户?我的微服务现在是否将用户信息复制到某个数据库和快速网关自己的存储中?我想我的普遍困惑是 API 网关是否完全远离 Web 应用程序自己的微服务,或者您仍然需要这两个部分?
我认为我自己的身份验证微服务将首先验证用户,然后使用 api 网关生成有效的短期令牌,但是阅读有关在 express-gateway 中创建用户或应用程序帐户以进行身份验证的信息让我对每个角色所扮演的角色感到困惑。