在 Asp .NET core 中验证由 Entra AD App Registration 颁发的 JWT 令牌

在 Asp .NET core 中验证由 Entra AD App Registration 颁发的 JWT 令牌

我现在有一个 Entra/Azure AD App 注册,正在被一个小型 Angular SPA 用于向 .net 核心 API 进行身份验证。

当我解码 JWT 时,iss 是

 "iss": "https://sts.windows.net/64..............a21/",

在我的 Program.cs 中

builder.Services.AddAuthentication(options =>
    {
    options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
    options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
    options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(o =>
{
    o.TokenValidationParameters = new TokenValidationParameters
    {
        ValidIssuer = builder.Configuration["https://login.microsoftonline.com/64..............a21"],
        ValidAudience = builder.Configuration["http://localhost:5036/"],
        IssuerSigningKey = new SymmetricSecurityKey
        (Encoding.UTF8.GetBytes(builder.Configuration["?????"])), //this is what i feel like I am missing
        ValidateIssuer = true,
        ValidateAudience = true,
        ValidateLifetime = false,
        ValidateIssuerSigningKey = true
    };
});

在本地开发模式下运行 angular 应用时,我遇到了 401 错误,API 也遇到了。我关注的是这个指导进行应用程序注册

所以我的问题是 - 我如何获取签名密钥,以便我的应用程序可以验证来自 Azure 的 JWT 令牌。

相关内容