在没有 public 密钥(RSA)的情况下验证 JWT .net 核心 webapi
validate JWT without public key (RSA) .net core webapi
我是 DOTNet 核心网络中的新 JWT Api。在我们的应用程序中,我们从 Microsoft 站点获取 access_token。 https://login.microsoftonline.com/
我们想在 .net 核心 (Api) 中验证令牌 (RS256 算法),但我们没有 PUBLIC KEY。
注意:我已经有令牌了。我们如何使用 public 密钥和任何其他东西来验证 JWT?我只有一个访问令牌。
使用 JWT 基本上有两种情况:
- 您自己创建了 JWT,并且知道用于它的密钥。比您可以编写验证,或将参数传递给 .net 核心管道。
- 您从外部 权威机构 获得了 JWT。在这种情况下,权威机构(在您的特定情况下 - 微软)知道如何验证 JWT。
当局将实施 JWT 协议并通过 URL 公开它。通常你需要知道两件事:authority 和 audience(令牌的接收者)。
好消息是.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。有很多关于该主题的文章。
我是 DOTNet 核心网络中的新 JWT Api。在我们的应用程序中,我们从 Microsoft 站点获取 access_token。 https://login.microsoftonline.com/
我们想在 .net 核心 (Api) 中验证令牌 (RS256 算法),但我们没有 PUBLIC KEY。
注意:我已经有令牌了。我们如何使用 public 密钥和任何其他东西来验证 JWT?我只有一个访问令牌。
使用 JWT 基本上有两种情况:
- 您自己创建了 JWT,并且知道用于它的密钥。比您可以编写验证,或将参数传递给 .net 核心管道。
- 您从外部 权威机构 获得了 JWT。在这种情况下,权威机构(在您的特定情况下 - 微软)知道如何验证 JWT。
当局将实施 JWT 协议并通过 URL 公开它。通常你需要知道两件事:authority 和 audience(令牌的接收者)。
好消息是.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。有很多关于该主题的文章。