【发布时间】:2020-01-11 10:03:40
【问题描述】:
这是我的情况:
- 我有一个使用 msal-angular 和 .net core 2.2 Web API 服务的客户端 Web 应用程序 (angular2)。
- 我已经在 Azure AD 中注册了客户端和服务。我将客户端添加到服务应用清单中的
knownClientApplications数组中。 - 我能够成功获取似乎具有正确身份验证所需的所有声明的令牌
当尝试使用客户端检索到的令牌访问端点时,我在服务的调试输出中看到以下错误:
Failure message: IDX10214: Audience validation failed. Audiences: 'client App ID'. Did not match: validationParameters.ValidAudience: 'service App ID' or validationParameters.ValidAudiences: 'null'.
我怀疑如果我放弃客户端 App ID 并只在客户端中使用服务 App ID,事情可能会正常工作,但这似乎不正确。
我应该只设置validationParameters.ValidAudiences 吗?如果是这样,我该怎么做? 我的 startup.cs 的相关部分显示:
services.AddAuthentication(AzureADDefaults.BearerAuthenticationScheme)
.AddAzureADBearer(options => Configuration.Bind("AzureAD", options));
或者,我需要在我的客户端 msal-angular 配置中进行更改以告诉它我需要令牌受众来反映我的服务应用程序 ID?
【问题讨论】:
-
您是否将 web api 范围添加到
consentScopes并获取该 api 的令牌?看来您使用了错误的令牌。 Here 是代码示例和 the document 。您还同意身份验证期间的范围吗?
标签: asp.net-core oauth-2.0 azure-active-directory