我看到过一篇关于Angular JS的类似标题的帖子,但我一直在搜索如何完成这个可能是常见任务的C# / .net代码示例。我发现很多文章都在讨论必须这样做的事实,但没有直接的“下面是如何使用C#和.net验证从Azure B2C返回的id_token”有人知道这样一段代码吗?
o2rvlv0m1#
验证id_token类似于验证访问令牌的第一步-您的客户端应该验证正确的颁发者是否已发回令牌,以及令牌是否未被篡改。因为id_token始终是JWT,所以存在许多库来验证这些令牌-我们建议您使用其中的一个库,而不是自己验证。要手动验证令牌,请参阅验证访问令牌中的步骤详细信息。验证令牌上的签名后,应在id_token中验证以下声明(这些操作也可能由令牌验证库完成):
*时间戳:IAT、NBF和EXP时间戳都应当适当地落在当前时间之前或之后。*对象:aud声明应该与应用程序的应用程序ID相匹配。*Nonce:负载中的nonce声明必须与初始请求期间传递到/authorize终结点的nonce参数匹配。
您可以浏览这个samples来找到您选择的语言版本。您也可以检查此thread以获取其他参考:希望能有所帮助。
1条答案
按热度按时间o2rvlv0m1#
验证id_token类似于验证访问令牌的第一步-您的客户端应该验证正确的颁发者是否已发回令牌,以及令牌是否未被篡改。因为id_token始终是JWT,所以存在许多库来验证这些令牌-我们建议您使用其中的一个库,而不是自己验证。
要手动验证令牌,请参阅验证访问令牌中的步骤详细信息。验证令牌上的签名后,应在id_token中验证以下声明(这些操作也可能由令牌验证库完成):
*时间戳:IAT、NBF和EXP时间戳都应当适当地落在当前时间之前或之后。
*对象:aud声明应该与应用程序的应用程序ID相匹配。
*Nonce:负载中的nonce声明必须与初始请求期间传递到/authorize终结点的nonce参数匹配。
您可以浏览这个samples来找到您选择的语言版本。
您也可以检查此thread以获取其他参考:
希望能有所帮助。