2017-06-19 142 views
1

我正在尋找在谷歌的oauth2 JWT令牌驗證過程文檔。在我的用例中,我將從客戶端發送JWT令牌,並且服務器代碼負責驗證JWT令牌。我的後端將負責根據規範驗證oAuth2 JWT令牌,因此我需要一個正式的流程來處理需要執行的操作,以驗證JWT令牌而不僅僅是使用這些庫。的oauth2 JWT令牌驗證過程

我使用Spring庫要做到這一點,但我期待像如何獲得證書,如果我們正在呼籲谷歌API進行驗證使用它們的信息。

如果我是客戶端,那麼我需要的僅僅是一個CLIENT_ID和ApiKey。但在這裏我也看到,我們確實需要提供證書。請讓我知道如果我錯了。

+0

我主要是想知道如何導入專用證書密鑰庫中的本地文件。 – Irfan

回答

0

爲了驗證一個簽署JWT,你應該看看它的頭部分和性能alg(用於製作簽名算法)和kid(簽名加密密鑰ID)。加載Google OAuth 2發現JSON文檔 https://accounts.google.com/.well-known/openid-configuration並閱讀其jwks_uri屬性(具有加密密鑰的URL)。從URL中讀取密鑰(這是一個JSON文件),並找到use="sig"一個密鑰(用於簽名)和匹配algkid值。然後,您可以解密JWT簽名以獲取JWT哈希值,並將其與您計算的哈希值進行比較。

所以你不需要導入關鍵是你的密鑰庫。您可以緩存密鑰,但是如果緩存中未包含kid值,則需要再次閱讀JWKS文檔。隨着時間的推移,Google也可能會刪除一些密鑰。

+0

謝謝Jan,這很有幫助。我還發現這個博客非常豐富的https://ncona.com/2015/02/consuming-a-google-id-token-from-a-server/ – Irfan