【问题标题】:Where is the Google Public Key for JWT validation?JWT 验证的 Google 公钥在哪里?
【发布时间】:2021-08-14 05:50:04
【问题描述】:

我有一个使用 Google 的 RS256 身份验证的 Angular11 UI 前端

  1. import { SocialAuthService, GoogleLoginProvider, SocialUser } from 'angularx-social-login';
  2. 在 app.module.ts 中添加 providers: [{ id: GoogleLoginProvider.PROVIDER_ID, provider: new GoogleLoginProvider('my Google-Client-ID')}]

当 Google 将 JWT 令牌发回给我时,我会将其发送到我的 NodeJS 应用服务器,以便为会话建立基于 JWT 的通信,因此此 NodeJS 应用服务器必须验证此 JWT。根据此angular-university.io article 部分“利用 RS256 签名”,

不是在应用服务器上安装公钥,而是 最好让身份验证服务器发布 可公开访问的 Url 中的 JWT 验证公钥。

我从 Erji 的 Google Identity 找到了这个 JWK(不是 JWT)链接 https://www.googleapis.com/oauth2/v3/certs。这是正确的公钥吗?

【问题讨论】:

    标签: angular jwt google-openid


    【解决方案1】:

    它不完全是 x509 证书,但是是的,JWK 用于验证给定的签名 JWT。

    如果我们检查Googles documentation 中的.well-known 端点

    它指向我们,

    jwks_uri    "https://www.googleapis.com/oauth2/v3/certs"
    

    对于包含用于验证已签名 JWT 的当前有效密钥的 JWK。公钥可以由 JWK 端点中包含的信息构建

    n 是密钥本身,alg 是签名算法,kid 是密钥标识符。

    RFC7517 定义了 JWK 标准并提供了有关字段的完整详细信息

    【讨论】:

      猜你喜欢
      • 2020-11-16
      • 2020-09-13
      • 2018-12-07
      • 2019-08-25
      • 2021-01-25
      • 1970-01-01
      • 2021-12-14
      • 1970-01-01
      相关资源
      最近更新 更多