ASP.NET 核心 Web API - 无法进行身份验证 - 获取 401 -



我想打电话给我的ASP。. NET Core Web API。

我已经使用了"已连接服务"。在ASP。. NET配置AAD集成。

添加了以下代码:

Program.cs

builder.Services
.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApi(builder.Configuration.GetSection("AzureAd"))
.EnableTokenAcquisitionToCallDownstreamApi()
// .AddMicrosoftGraph(builder.Configuration.GetSection("MicrosoftGraph"))
.AddInMemoryTokenCaches();

appSettings.json:

"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"TenantId": "6a71XXXXXXf181",
"ClientId": "b4476dXXXXXXX16f069",
"Secret": "5b8XXXXX084caa",
"Domain": "JXXXXXX5.onmicrosoft.com",
"CallbackPath": "/signin-oidc",
"ClientSecret": "Nvq8QXXXXXXXXXW0dA4",
"ClientCertificates": []
},

当我从Vue调用API时(头中附加了一个承载令牌),我得到一个HTTP 401错误:

WWW-Authenticate: Bearer error="invalid_token", error_description="签名是无效的">

我已经试过了我能找到的每一个样品……但无法通过此错误。

有谁能给我指路吗?这是应用程序注册的问题吗?

我们通过发出两个令牌来修复它

一个用于Microsoft Graph获取用户的图像和其他细节,

第二个调用webAPI。

请注意,在获得令牌之前,您必须在登录请求中设置适当的范围。

还检查令牌内容以验证受众和发行者,我们使用jwt。查看令牌的详细信息。

这都是亚当的功劳。

最新更新