【问题标题】:Receiving Failure message: IDX10214: Audience validation failed. when trying to authenticate a client App to a service App接收失败消息:IDX10214:观众验证失败。尝试向服务应用程序验证客户端应用程序时
【发布时间】: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


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2019-03-21
    • 2018-06-19
    • 2020-04-22
    • 2021-11-28
    • 2018-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多