如何在.NET Core 2.2中验证JWT承载令牌

时间:2019-09-19 15:54:15

标签: azure .net-core jwt token

我已经开发了一个前端应用程序,可以从Azure AD获取jwt令牌。

我设法将此令牌放在标头中,并将请求发送到我的后端。

我用在线工具检查了令牌,它是有效的。

在不需要令牌的URL上,我可以获取它并对其进行解码。

但是当我注意到某个URL为[Authorize](授权)时,我仍然会收到答案401,而且我不知道如何做,这样我的后端才能验证我的令牌。

我不知道在.NET Core 2.2项目的Startup.cs中放入什么内容

有人可以解决吗?

1 个答案:

答案 0 :(得分:0)

我找到了解决方法:

在appsettings.json中:

"AzureActiveDirectory": {
    "Instance": "https://login.microsoftonline.com/",
    "Domain": "<Domain>",
    "TenantId": "https://login.microsoftonline.com/<TenantId>/v2.0",
    "ClientId": "<ClientId>"
  }

在Startup.cs中:

services.AddAuthentication(AzureADDefaults.BearerAuthenticationScheme).AddAzureADBearer(options => Configuration.Bind("AzureActiveDirectory", options));
services.AddAuthorization(o =>
{
    o.DefaultPolicy = new AuthorizationPolicyBuilder()
        .RequireAuthenticatedUser()
        .AddAuthenticationSchemes(AzureADDefaults.BearerAuthenticationScheme)
        .Build();
});