2016-09-14 20 views
0

我們正試圖實現在此列出的身份驗證選項:可擴展服務代理如何驗證用戶?

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

我們正在使用雲端點V2並沒有使用AppEngine上實現它,而是通過集裝箱引擎與我們自己的集裝箱/吊艙。

如果我們的理解是正確的,流程是這樣的:

  1. 用戶登錄到應用程序,比方說使用auth2.com - 返回一個JWT令牌
  2. 用戶調用微服務端點傳遞JWT令牌
  3. 的ESP驗證使用JWT令牌定義端點 - 在這種情況下,撥打電話時auth2.com驗證
  4. 如果令牌是有效的,請求被轉發到後端服務器的請求

我們的問題是 - 我們的理解是否正確?如果是這樣,ESP是採用任何形式的緩存,還是通過代理與auth2.com/authentication提供商驗證每個請求?如果是這樣,看起來這會顯着增加吞吐量,因爲一個額外的網絡請求被添加到每個請求。

在此先感謝。

回答

2

有一個用於JWT認證結果的緩存。我相信結果會緩存5分鐘,儘管這可能會有所變化。

+0

感謝saiyr - 是否有任何文件支持此?如果用戶使用oauth2進行身份驗證並收到60分鐘的令牌,並且在59分鐘時他們擊中了ESP,這是否意味着技術上他們可以通過64分鐘的驗證? – user3707

+0

我可以看到它的記錄。不,如果令牌過期發生在5分鐘之前,它只會被緩存直到令牌過期。 – saiyr

+0

你怎麼知道它被緩存了 - 你能測試嗎?它如何知道要緩存什麼? – user3707

0

JWT的驗證是本地操作(無需與auth2.com通信以驗證令牌)。 ESP從auth2.com提取的唯一信息是用於驗證JWT的公鑰。

公鑰被緩存5分鐘。 成功的JWT認證結果被緩存5分鐘或直到JWT過期。

相關問題