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。
如果我们的理解是正确的,流程是这样的:
- 用户登录应用程序,假设使用 auth2.com - 返回 JWT 令牌
- 用户调用传递 JWT 令牌的微服务端点
- ESP 使用定义的端点验证 JWT 令牌 - 在这种情况下,它调用 auth2.com 来验证请求
- 如果令牌有效,请求被代理到后端服务器
我们的问题是——我们的理解正确吗?如果是这样,ESP 是否采用任何形式的缓存,或者它是否使用 auth2.com/authentication 提供程序通过代理验证每个请求?如果是这样,这似乎会显着增加吞吐量,因为每个请求都会添加一个额外的网络请求。
提前致谢。
JWT 认证结果缓存。我相信结果会缓存 5 分钟,但可能会发生变化。
JWT 的验证是本地操作(无需与 auth2.com 对话来验证令牌)。 ESP 从 auth2.com 中提取的唯一信息是用于验证 JWT 的 public 密钥。
public 密钥缓存了 5 分钟。
成功的 JWT 认证结果缓存 5 分钟或直到 JWT 过期。
我们正在尝试实施此处概述的身份验证选项:
https://cloud.google.com/endpoints/docs/authenticating-users
我们正在使用 Cloud Endpoints V2 而不是使用 AppEngine 来实现它,而是通过容器引擎和我们自己的 containers/pods。
如果我们的理解是正确的,流程是这样的:
- 用户登录应用程序,假设使用 auth2.com - 返回 JWT 令牌
- 用户调用传递 JWT 令牌的微服务端点
- ESP 使用定义的端点验证 JWT 令牌 - 在这种情况下,它调用 auth2.com 来验证请求
- 如果令牌有效,请求被代理到后端服务器
我们的问题是——我们的理解正确吗?如果是这样,ESP 是否采用任何形式的缓存,或者它是否使用 auth2.com/authentication 提供程序通过代理验证每个请求?如果是这样,这似乎会显着增加吞吐量,因为每个请求都会添加一个额外的网络请求。
提前致谢。
JWT 认证结果缓存。我相信结果会缓存 5 分钟,但可能会发生变化。
JWT 的验证是本地操作(无需与 auth2.com 对话来验证令牌)。 ESP 从 auth2.com 中提取的唯一信息是用于验证 JWT 的 public 密钥。
public 密钥缓存了 5 分钟。 成功的 JWT 认证结果缓存 5 分钟或直到 JWT 过期。