![在 Asp .NET core 中验证由 Entra AD App Registration 颁发的 JWT 令牌](https://linux22.com/image/793145/%E5%9C%A8%20Asp%20.NET%20core%20%E4%B8%AD%E9%AA%8C%E8%AF%81%E7%94%B1%20Entra%20AD%20App%20Registration%20%E9%A2%81%E5%8F%91%E7%9A%84%20JWT%20%E4%BB%A4%E7%89%8C.png)
我现在有一个 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 令牌。