【问题标题】:validate JWT without public key (RSA) .net core webapi验证没有公钥 (RSA) 的 JWT .net 核心 webapi
【发布时间】:2021-06-22 16:23:16
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

     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。有很多关于这个主题的文章。

    【讨论】:

      猜你喜欢
      • 2016-04-17
      • 2019-06-23
      • 1970-01-01
      • 2018-01-05
      • 2017-06-24
      • 1970-01-01
      • 2021-03-24
      • 2019-08-26
      • 2021-08-21
      相关资源
      最近更新 更多