可扩展服务代理如何对用户进行身份验证?

时间:2016-09-14 18:28:28

标签: google-cloud-platform google-cloud-endpoints

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

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

我们正在使用Cloud Endpoints V2而不是使用AppEngine实现它,而是使用我们自己的容器/ pod通过Container Engine实现它。

如果我们的理解是正确的,那么流程就像:

  1. 用户登录应用程序,让我们说使用auth2.com - 返回JWT令牌
  2. 用户调用传递JWT令牌的微服务端点
  3. ESP使用定义的端点验证JWT令牌 - 在这种情况下,它会调用auth2.com来验证请求
  4. 如果令牌有效,则将请求代理到后端服务器
  5. 我们的问题是 - 我们的理解是否正确?如果是这样,ESP是否采用任何形式的缓存,还是通过auth2.com/authentication提供商通过代理验证每个请求?如果是这样,似乎这会显着增加吞吐量,因为每个请求都会添加一个额外的网络请求。

    提前致谢。

2 个答案:

答案 0 :(得分:2)

JWT身份验证结果有一个缓存。我相信结果会缓存5分钟,但这可能会有所改变。

答案 1 :(得分:0)

JWT的验证是本地操作(无需与auth2.com交谈以验证令牌)。 ESP从auth2.com获取的唯一信息是用于验证JWT的公钥。

公钥缓存5分钟。 成功的JWT身份验证结果将缓存5分钟或直到JWT过期。