JWT 验证的 Google Public 密钥在哪里?
Where is the Google Public Key for JWT validation?
我有一个 Angular11 UI 前端利用 Google 的 RS256 身份验证
import { SocialAuthService, GoogleLoginProvider, SocialUser } from 'angularx-social-login';
- 在 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 签名”,
Instead of installing the public key on the Application server, it's
much better to have the Authentication server publish the
JWT-validating public key in a publicly accessible Url.
我找到了 Erji 的这个 JWK(不是 JWT)link https://www.googleapis.com/oauth2/v3/certs from Google Identity。这是正确的 public 键吗?
它不完全是 x509 证书,但是是的,JWK 用于验证给定的签名 JWT。
如果我们检查在 Googles documentation
中找到的 .well-known
端点
它指向我们,
jwks_uri "https://www.googleapis.com/oauth2/v3/certs"
对于包含用于验证已签名 JWT 的当前有效密钥的 JWK。 public 密钥可以由 JWK 端点
中包含的信息构建
中的n
是密钥本身,alg
是签名算法,kid
是密钥标识符。
RFC7517 定义了 JWK 标准并具有字段的完整详细信息
我有一个 Angular11 UI 前端利用 Google 的 RS256 身份验证
import { SocialAuthService, GoogleLoginProvider, SocialUser } from 'angularx-social-login';
- 在 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 签名”,
Instead of installing the public key on the Application server, it's much better to have the Authentication server publish the JWT-validating public key in a publicly accessible Url.
我找到了 Erji 的这个 JWK(不是 JWT)link https://www.googleapis.com/oauth2/v3/certs from Google Identity。这是正确的 public 键吗?
它不完全是 x509 证书,但是是的,JWK 用于验证给定的签名 JWT。
如果我们检查在 Googles documentation
中找到的.well-known
端点
它指向我们,
jwks_uri "https://www.googleapis.com/oauth2/v3/certs"
对于包含用于验证已签名 JWT 的当前有效密钥的 JWK。 public 密钥可以由 JWK 端点
中包含的信息构建中的n
是密钥本身,alg
是签名算法,kid
是密钥标识符。
RFC7517 定义了 JWK 标准并具有字段的完整详细信息