如何使用C#和.net验证MS Azure AD生成的JWT id_token?

时间:2019-12-19 21:36:20

标签: c# .net validation token azure-ad-b2c

我看过有关Angular JS的类似标题的帖子,但是我一直在寻找有关如何执行此大概任务的C#/ .net代码示例。

我发现很多文章都在谈论必须完成这一事实,但是并没有简单的“这是使用C#和.net验证Azure B2C返回的id_token的方式”

有人知道这样的代码吗?

1 个答案:

答案 0 :(得分:0)

验证id_token类似于验证访问令牌的第一步-您的客户端应验证正确的发行者已发回令牌,并且该令牌未被篡改。由于id_tokens始终是JWT,因此存在许多库来验证这些令牌-我们建议您使用其中一个而不是自己进行操作。

要手动验证令牌,请参阅steps details in validating访问令牌。验证令牌上的签名后,应在id_token中验证以下声明(这些也可以由您的令牌验证库完成):

  • 时间戳:iat,nbf和exp时间戳应全部落在当前时间之前或之后。
  • 受众:声音声明应与您的应用的应用ID相匹配。
  • 随机数:有效负载中的随机数声明必须与初始请求期间传递到/ authorize端点的随机数参数相匹配。

您可以浏览此samples,以找到您所选择的语言。有关如何显式验证JWT令牌的更多信息,请参见manual JWT validation sample

您也可以选中此thread以获得其他参考:

希望有帮助。