仅验证从 Azure B2C AD 生成的 JWT 令牌的签名 [重复]

Posted

技术标签:

【中文标题】仅验证从 Azure B2C AD 生成的 JWT 令牌的签名 [重复]【英文标题】:Validate only the signature of JWT token generated from Azure B2C AD [duplicate] 【发布时间】:2018-12-25 00:34:12 【问题描述】:

我只想验证使用Azure B2C AD 登录后收到的令牌的签名。

网络中显示的示例,使用秘密或密钥参数,如果Azure B2C AD 生成令牌,我不确定从哪里可以得到它们。

如果可能的话,我怎样才能只实现签名验证而不对Audience 等进行更多验证?

EDIT 它使用"alg": "RS256"

【问题讨论】:

看看这个问题:***.com/questions/59840170/…我找到的最好的一个 【参考方案1】:

Microsoft 拥有 an example application,它使用 AAD IdentityModel Extensions for .Net 中的 System.IdentityModel.Tokens.Jwt 来验证 JWT 令牌,包括签名。 Here is the code that does the actual validation,它利用了JwtSecurityTokenHandler。我想如果你只想去掉签名验证码,你可以从the ValidateToken or ValidateSignature methods in the source code 中提取它。

【讨论】:

这些方法所期望的关键参数是什么,我究竟应该提供什么。我查看了这个端点login.microsoftonline.com/fabrikamb2c.onmicrosoft.com/discovery/…,但我仍然感到困惑。 这都使用 OpenID Connect 协议。如果你对它的工作原理感兴趣,you can find a ton of stuff online。 This article 有一个关于使用来自知名 OIDC 端点的密钥验证 OpenID Connect 签名的特定部分 找到了这个***.com/a/41041219/4990859,它成功了。完成了。

以上是关于仅验证从 Azure B2C AD 生成的 JWT 令牌的签名 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Asp.net Core 中的查询字符串验证 Azure AD B2C 令牌?

Azure AD B2C 错误 - IDX10501:签名验证失败

如何在 Web API 中验证 Azure B2C JWT 令牌?

Azure-AD B2C 可以使用手机号码作为用户名吗?

如何在 Java 中验证 Azure B2C id 令牌的 JWT 签名?

azure 应用服务身份验证模块是不是支持 azure ad b2c?