1

我正在开发一个使用谷歌登录的网站。用户登录后,我会从 google js api 获取一个 id 令牌并发送到服务器进行验证。

我可以使用 Google 令牌信息端点轻松验证和执行该过程,但这会导致大量 HTTPS 请求,因为每次用户使用 google 登录时它都会向 google 发送 HTTPS 请求。

因此,我在服务器本地验证 JWT(id 令牌),我已经成功验证了 JWT,没有问题。我面临的问题是我必须在程序中缓存谷歌公共JWK

每次我无法为相应的 JWT“孩子”找到正确的 JWK 时,我都在考虑更新 JWK。但这会导致每次找不到具有相应“孩子”的 JWK 时向 google 发送 HTTPS 请求。

这会是一个漏洞吗?是否存在我应该更新 Google 公共 JWK 的静态时间段?

有人可以帮我弄这个吗 ?如果我做错了什么,并指出我正确的方向

谢谢

4

1 回答 1

1

在受 TLS 保护的端点上发布密钥的目的是您可以快速轮换它们。谷歌就是这样做的。每次令牌带有kid以前未缓存的令牌时,您都需要获取新密钥。如果您确保验证 Google 在 JWKs 端点上提供的 TLS 服务器证书,则不存在漏洞。谷歌可能使用了一个静态轮换间隔,但尝试使用它只会增加下载次数(与“即时”相对),谷歌可能会随意更改间隔。

于 2016-06-30T16:59:01.520 回答