3

API 网关和微服务如何工作。

谁能用网关解释微服务架构的基本流程。我找不到正确的答案。

假设我们在不同的实例上运行身份验证服务器和客户微服务,并且在所有服务之前我们有一个 API 网关。

我的问题是。

当用户尝试使用用户名和密码登录时,API 网关调用身份验证服务器并将访问令牌返回给用户。

然后用户尝试访问在单独实例上运行的特定 url(/customers - 客户微服务)。API网关做什么?

  1. 使用身份验证服务器验证令牌并获取用户 ID 并使用用户 ID 将请求传递给客户服务

或者

  1. 验证令牌并使用访问令牌将请求传递给客户微服务?客户微服务负责检查用户 ID(对身份验证服务器进行 HTTP 调用)?
4

2 回答 2

1

我认为最常见的方法是将 API 网关也用作安全网关,这意味着 API 网关负责 SSL 终止和令牌验证。如果令牌验证成功,您可以将用户 ID 或用户 API 密钥作为标头并将请求转发到微服务。此外,您还可以决定在 API 网关上执行身份验证和授权(通常借助 API 管理解决方案)。

关于您的选项 #2 - 我认为验证令牌 2 次没有意义。最佳实践是在边缘执行安全验证,因为在验证失败的情况下,您使用的资源更少(早点拒绝)

于 2019-01-20T13:17:10.107 回答
-2

要回答您的问题,它与您提到的选项#2 很接近。API 网关通常会检查身份验证令牌的有效性,然后将请求传递给您的微服务。但是,您需要在设计时决定您的微服务是否也会对令牌进行另一级别的验证。

请注意,API 网关不会强制执行 Authorization ,授权是您的微服务必须强制执行的。

于 2017-10-06T06:41:14.323 回答