Validation oAuth2 JWT令牌验证过程

Validation oAuth2 JWT令牌验证过程,validation,oauth-2.0,jwt,Validation,Oauth 2.0,Jwt,我正在寻找关于Google oAuth2 JWT令牌验证过程的文档。在我的用例中,我将从我的客户机发送JWT令牌,服务器代码负责验证JWT令牌。我的后端将负责按照规范验证oAuth2 JWT令牌,因此我需要一个正式的过程来验证JWT令牌,而不仅仅是使用库 我正在使用SpringLibrary来实现这一点,但我正在寻找一些信息,比如如果我们调用GoogleAPI进行验证,如何获取证书并使用它们 如果我是客户,那么我只需要一个客户id和ApiKey。但在这里,我也看到我们确实需要提供证书。如果我错了

我正在寻找关于Google oAuth2 JWT令牌验证过程的文档。在我的用例中,我将从我的客户机发送JWT令牌,服务器代码负责验证JWT令牌。我的后端将负责按照规范验证oAuth2 JWT令牌,因此我需要一个正式的过程来验证JWT令牌,而不仅仅是使用库

我正在使用SpringLibrary来实现这一点,但我正在寻找一些信息,比如如果我们调用GoogleAPI进行验证,如何获取证书并使用它们


如果我是客户,那么我只需要一个客户id和ApiKey。但在这里,我也看到我们确实需要提供证书。如果我错了,请告诉我。

要验证签名的JWT,您应该查看其标题部分以及属性
alg
(用于生成签名的算法)和
kid
(签名加密密钥ID)。加载Google OAuth 2发现JSON文档 并读取其
jwks_uri
属性(带有加密密钥的URL)。读取该URL中的密钥(这是一个JSON文档),并找到一个具有
use=“sig”
(用于签名)和匹配
alg
kid
值的密钥。然后可以解密JWT签名以获得JWT哈希值,并将其与计算的哈希值进行比较


因此,您不需要将密钥导入密钥库。您可以缓存密钥,但是当您获得缓存中不包含的
kid
值时,您需要再次读取JWKS文档。随着时间的推移,Google也有可能删除一些密钥。

要验证签名的JWT,您应该查看其标题部分以及属性
alg
(用于生成签名的算法)和
kid
(签名加密密钥ID)。加载Google OAuth 2发现JSON文档 并读取其
jwks_uri
属性(带有加密密钥的URL)。读取该URL中的密钥(这是一个JSON文档),并找到一个具有
use=“sig”
(用于签名)和匹配
alg
kid
值的密钥。然后可以解密JWT签名以获得JWT哈希值,并将其与计算的哈希值进行比较


因此,您不需要将密钥导入密钥库。您可以缓存密钥,但是当您获得缓存中不包含的
kid
值时,您需要再次读取JWKS文档。随着时间的推移,谷歌也有可能删除一些密钥。

我最感兴趣的是知道如何在本地将私有证书导入密钥库文件。我最感兴趣的是知道如何在本地将私有证书导入密钥库文件。谢谢你,简。这很有帮助。我还发现这个博客信息丰富,谢谢你,简。这很有帮助。我还发现这个博客内容丰富