当前位置: 首页 > 知识库问答 >
问题:

Google identiy toolkit令牌验证异常。NET JSON web令牌处理程序

闻人英韶
2023-03-14

我正在尝试将GIT集成到我的站点中。我已经成功地实现了该工具包,并希望用*验证从GoogleAPI发送的JWT。p12安装期间提供的证书。

异常详细信息:系统。IdentityModel。SignatureReferenceFailedException:IDX10501:签名验证失败。关键是系统。IdentityModel。代币。X509SecurityKey'。

收到JSON Web令牌:令牌:{alg:RS256,孩子:qwYevA}。{iss:https://identitytoolkit.google.com/,aud:238895676270-i8o5fe2poogs83nki8jl5tgtfm7h9n5l.apps.googleusercontent.com,iat:1445739256,exp:1446948856,user_id:电子邮件:provider_id:google.com,"验证": true,"display_name":"}'

 var signingToken = new X509SecurityToken(new X509Certificate2(fileName, "notasecret"));
        TokenValidationParameters validationParameters =

                              new TokenValidationParameters()

                              {

                                  IssuerSigningKey = new X509SecurityKey(new X509Certificate2(fileName, "notasecret")),
                                  ValidAudience = "238895676270-i8o5fe2poogs83nki8jl5tgtfm7h9n5l.apps.googleusercontent.com",
                                  ValidIssuer = "https://identitytoolkit.google.com/",
                                  IssuerSigningKeyResolver = (token, a, ski, tvp) => { return new X509SecurityKey(new X509Certificate2(fileName, "notasecret")); },
                                  IssuerSigningToken = signingToken,

    };
        SecurityToken st;

        var result = tokenHandler.ValidateToken((Request.Cookies["gtoken"]).Value, validationParameters, out st);

共有1个答案

林君博
2023-03-14

由Identity Toolkit生成的JWT由Identity Toolkit自己的RSA私钥签名,而不是由。p12您在安装过程中下载的。

您需要从https://www.googleapis.com/identitytoolkit/v3/relyingparty/publicKeys?key={YOUR_SERVER_API_KEY}下载当前活动的身份工具包X509公共证书,在您收到的JWT中选择“孩子”的证书,并使用该证书构建X509证书2。

SERVER_API_KEY可以在您创建OAuth2客户端的谷歌开发人员控制台中生成。

 类似资料:
  • SignatureException:签名长度不正确:得到256,但预期为128。我使用的是和。到目前为止,同样的配置有效--有什么想法吗?

  • 通过令牌验证在注册中心控制权限,以决定要不要下发令牌给消费者,可以防止消费者绕过注册中心访问提供者,另外通过注册中心可灵活改变授权方式,而不需修改或升级提供者 可以全局设置开启令牌验证: <!--随机token令牌,使用UUID生成--> <dubbo:provider interface="com.foo.BarService" token="true" /> 或 <!--固定token令牌,

  • 问题内容: 我在CSRF令牌方面遇到问题。当我提交表单时,正在生成一个新的表单,但是我想我正在生成两个不同的令牌,这有点困惑。还有一个名为的令牌,因此我在开发人员工具中看到了两个不同的cookie(XSRF- TOKEN和_csrf),发布后它们没有变化。 我想要做的是为每个帖子请求生成一个新令牌,并检查它是否有效。我知道为了安全起见应该这样做,但是我坚持了下来。 漫长的一天,我是Express和

  • 我有一个令牌,它将从一个服务传递到我的Rest服务。我想使用Spring security根据公钥验证令牌(它托管在不同的服务器上)。我已经定义了安全配置类,它扩展了KeyDopperWebSecurity配置适配器,并且实现了httpSecurity和AuthenticationManager构建器。 我正在使用OncePerRequestFilter并从请求中获取承载令牌。 @组件公共类Jwt

  • 问题内容: 我需要验证一个Google id_token,其中一个步骤涉及检查令牌签名。 首先,我从以下网址获取证书:https : //www.googleapis.com/oauth2/v2/certs,并从证书中提取模数(n)和指数(e)并生成公钥,然后分解令牌(标题,有效负载和摘要),然后将解码后的内容与Google pKey +摘要一起发送到rsa函数。 我陷入了这个验证错误: 这是代码

  • 本文向大家介绍ThinkPHP令牌验证实例,包括了ThinkPHP令牌验证实例的使用技巧和注意事项,需要的朋友参考一下 ThinkPHP内置了表单令牌验证功能,可以有效防止表单的远程提交等安全防护。 表单令牌验证相关的配置参数有: 如果开启表单令牌验证功能,系统会自动在带有表单的模板文件里面自动生成以TOKEN_NAME为名称的隐藏域,其值则是TOKEN_TYPE方式生成的哈希字符串,用于实现表单