我想打电话给我的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。查看令牌的详细信息。
这都是亚当的功劳。