Extensible Service Proxy 如何对用户进行身份验证?

How does the Extensible Service Proxy authenticate users?

我们正在尝试实施此处概述的身份验证选项:

https://cloud.google.com/endpoints/docs/authenticating-users

我们正在使用 Cloud Endpoints V2 而不是使用 AppEngine 来实现它,而是通过容器引擎和我们自己的 containers/pods。

如果我们的理解是正确的,流程是这样的:

  1. 用户登录应用程序,假设使用 auth2.com - 返回 JWT 令牌
  2. 用户调用传递 JWT 令牌的微服务端点
  3. ESP 使用定义的端点验证 JWT 令牌 - 在这种情况下,它调用 auth2.com 来验证请求
  4. 如果令牌有效,请求被代理到后端服务器

我们的问题是——我们的理解正确吗?如果是这样,ESP 是否采用任何形式的缓存,或者它是否使用 auth2.com/authentication 提供程序通过代理验证每个请求?如果是这样,这似乎会显着增加吞吐量,因为每个请求都会添加一个额外的网络请求。

提前致谢。

JWT 认证结果缓存。我相信结果会缓存 5 分钟,但可能会发生变化。

JWT 的验证是本地操作(无需与 auth2.com 对话来验证令牌)。 ESP 从 auth2.com 中提取的唯一信息是用于验证 JWT 的 public 密钥。

public 密钥缓存了 5 分钟。 成功的 JWT 认证结果缓存 5 分钟或直到 JWT 过期。