API网关和微服务身份验证

时间:2017-07-31 09:40:46

标签: microservices api-gateway

API网关和微服务的工作原理。

任何人都可以通过Gateway解释微服务架构的基本流程。我找不到合适的答案。

假设我们在不同的实例上运行auth服务器和客户微服务,并且在我们拥有API网关的所有服务之前运行。

我的问题是。

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

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

  1. 使用auth服务器验证令牌并获取用户ID并将请求传递给用户ID为的客户服务?
  2. OR

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:-1)

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

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