【问题标题】:IDX10214: Audience validation failed. Audiences: '[PII is hidden]'IDX10214:观众验证失败。观众:“[PII 被隐藏]”
【发布时间】:2020-04-22 11:49:40
【问题描述】:

我有使用 azureb2c 进行身份验证的 Web 应用程序。有 3 个 API,由 Web 应用程序通过 Ocelot 网关使用 HttpClient 调用。身份验证后,当通过网关向 API 发出请求时,会向特定 API 发出请求并提供所需的响应。但是,在阅读响应时,下面一行会抛出异常

var result = await response.Content.ReadAsStringAsync();

IDX10214:观众验证失败。观众:“[PII 被隐藏]”。不匹配:validationParameters.ValidAudience:'[PII is hidden]' 或 validationParameters.ValidAudiences:'[PII is hidden]'。

我已经使用 postman 单独测试了 API,它可以工作。

我为每个客户端配置了类似于下面的代码

services.AddHttpClient<IApiClient, ApiClient>()
                .AddHttpMessageHandler<AccessTokenHandler>()
                .AddHttpMessageHandler<ValidateHeaderHandler>()
                .AddTransientHttpErrorPolicy(policyBuilder => policyBuilder.RetryAsync(2))
                .AddTransientHttpErrorPolicy(policyBuilder => policyBuilder.CircuitBreakerAsync
                 (
                    handledEventsAllowedBeforeBreaking: 2,
                    durationOfBreak: TimeSpan.FromMinutes(1)
                 ));

【问题讨论】:

    标签: azure azure-active-directory asp.net-core-webapi asp.net-core-2.2 ocelot


    【解决方案1】:

    你可以试试:

    if (env.IsDevelopment())
    {
         IdentityModelEventSource.ShowPII = true; 
    }
    

    此外,您可能需要添加授权,因为默认情况下不包括在内。

    【讨论】:

    • 它没有帮助我,我仍然收到 AuthenticationFailed 错误消息。当 API 发送响应而没有抱怨时,我无法理解为什么以及谁在客户端验证响应。
    猜你喜欢
    • 2019-03-21
    • 2018-06-19
    • 1970-01-01
    • 2021-11-28
    • 2018-08-05
    • 1970-01-01
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多