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

9jyewag0  于 2022-11-19  发布在  .NET
关注(0)|答案(1)|浏览(173)

我看到过一篇关于Angular JS的类似标题的帖子,但我一直在搜索如何完成这个可能是常见任务的C# / .net代码示例。
我发现很多文章都在讨论必须这样做的事实,但没有直接的“下面是如何使用C#和.net验证从Azure B2C返回的id_token”
有人知道这样一段代码吗?

o2rvlv0m

o2rvlv0m1#

验证id_token类似于验证访问令牌的第一步-您的客户端应该验证正确的颁发者是否已发回令牌,以及令牌是否未被篡改。因为id_token始终是JWT,所以存在许多库来验证这些令牌-我们建议您使用其中的一个库,而不是自己验证。
要手动验证令牌,请参阅验证访问令牌中的步骤详细信息。验证令牌上的签名后,应在id_token中验证以下声明(这些操作也可能由令牌验证库完成):

*时间戳:IAT、NBF和EXP时间戳都应当适当地落在当前时间之前或之后。
*对象:aud声明应该与应用程序的应用程序ID相匹配。
*Nonce:负载中的nonce声明必须与初始请求期间传递到/authorize终结点的nonce参数匹配。

您可以浏览这个samples来找到您选择的语言版本。
您也可以检查此thread以获取其他参考:
希望能有所帮助。

相关问题