【问题标题】:How to verify JWT id_token produced by MS Azure AD with C# and .net?如何使用 C# 和 .net 验证 MS Azure AD 生成的 JWT id_token?
【发布时间】:2019-12-19 21:36:20
【问题描述】:

我看过一篇关于 Angular JS 的类似标题的帖子,但我一直在寻找一个 C# / .net 代码示例,说明如何执行这个可能很常见的任务。

我发现很多文章都在谈论必须这样做的事实,但没有直截了当的“这是使用 C# 和 .net 验证从 Azure B2C 返回的 id_token 的方法”

有人知道这样一段代码吗?

【问题讨论】:

  • 验证 JWT 过于宽泛。您实际上可以进行 100 次验证,所以也许这就是为什么没有这样的“这就是您的验证方式”的原因。

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


【解决方案1】:

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

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

  • 时间戳:iat、nbf 和 exp 时间戳都应该在当前时间之前或之后,视情况而定。
  • Audience:aud 声明应与您的应用的应用 ID 匹配。
  • Nonce:负载中的 nonce 声明必须与初始请求期间传递到 /authorize 端点的 nonce 参数匹配。

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

您也可以查看此thread 以获得更多参考:

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2017-08-25
    • 2017-03-31
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 2021-08-17
    • 2020-03-27
    • 2021-08-21
    相关资源
    最近更新 更多