我现在有一个 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 令牌。