在没有公钥(RSA)的情况下验证 JWT .net 核心 webapi

时间:2021-06-22 01:33:20

标签: .net-core asp.net-core-webapi

我是 DOTNet 核心 Web Api 中的新 JWT。在我们的应用程序中,我们从 Microsoft 站点获取 access_token。 https://login.microsoftonline.com/

我们想在 .net 核心 (Api) 中验证令牌(RS256 算法),但我们没有公钥。

注意:我已经有一个令牌。我们如何使用我们的公钥和其他任何东西来验证 JWT?我只有一个访问令牌。

1 个答案:

答案 0 :(得分:0)

使用 JWT,您基本上有两种情况:

  • 您自己创建了 JWT,并且您知道用于它的密钥。您可以编写验证,或将参数传递给 .net 核心管道。
  • 您从外部权威获得了 JWT。在这种情况下,权威(在您的特定情况下 - 微软)知道如何验证 JWT。

Authority 将实现 JWT 协议并通过 URL 公开它。通常你需要知道两件事:authorityaudience(令牌的接收者)。

现在好消息是 .net core 为您处理协议细节,您需要做的就是设置身份验证管道。这就是它归结为:

 services.AddAuthentication()
   .AddJwtBearer("schemeName", options =>
     {
       options.Audience = "... your audience ...";
       options.Authority = "... your authority ...";
       options.SaveToken = true;
     });

有关详细信息,请阅读 .net core 中的 JWT 身份验证,例如JWT Validation and Authorization in ASP.NET Core。有很多关于这个主题的文章。