接收失败消息:IDX10214:听众验证失败。尝试向服务应用程序验证客户端应用程序时

时间:2019-09-09 15:53:22

标签: asp.net-core oauth-2.0 azure-active-directory

这是我的情况:

  • 我有一个使用msal-angular的客户端Web应用程序(angular2)和.net核心2.2 Web API服务。
  • 我已经在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'.

我怀疑如果我放弃客户端应用程序ID并仅在客户端中使用服务应用程序ID,那么事情可能会正常工作,但这似乎并不正确。

我应该只设置validationParameters.ValidAudiences吗?如果是这样,我该怎么做? 我的startup.cs的相关部分显示:

services.AddAuthentication(AzureADDefaults.BearerAuthenticationScheme)
        .AddAzureADBearer(options => Configuration.Bind("AzureAD", options));

或者,我是否需要在客户端msal-angular配置中进行某些更改以告知我需要令牌访问者来反映我的服务应用程序ID?

1 个答案:

答案 0 :(得分:1)

客户端Web应用程序中的范围应为Application ID URL/.default

api://691af574-47f6-4b8e-b544-b75ec4387938/TodoListService/.default

您可以在网络api应用程序中找到它。

enter image description here