You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure App Insights出现大量可恢复JWT认证异常,如何修复或屏蔽?

AAI异常上报逻辑说明

Application Insights 并不是仅捕获全局未处理异常,它默认会采集所有通过ILogger输出的Error及以上级别的日志,包括中间件内部捕获但主动写入日志的异常。
你定位的JwtBearerHandler代码中,单个JWT认证方案校验失败时,会直接调用LogError输出异常日志,哪怕后续其他认证方案校验成功、请求最终返回2xx状态码,这条异常日志已经被AAI的日志采集器捕获并上报,这就是你遇到大量假阳性异常的核心原因。

解决方案

方案1:从根源消除冗余异常日志(推荐)

当前你在授权策略中配置了两个认证方案,请求会依次尝试两个方案校验,前一个方案校验失败的异常会被默认写入日志。你可以修改JWT认证配置,关闭单个方案校验失败时的错误日志输出:

services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
    .AddMicrosoftIdentityWebApi(Configuration, jwtBearerOptions =>
    {
        jwtBearerOptions.Events = new JwtBearerEvents
        {
            OnAuthenticationFailed = context =>
            {
                // 仅当最终要返回401时才保留异常,否则跳过日志输出
                context.NoResult();
                return Task.CompletedTask;
            }
        };
    });

你可以对OpenIddict的认证配置做相同处理,避免单个校验流程失败输出冗余错误日志。
另外开发环境使用临时密钥导致重启后密钥变更,也会放大这类异常的出现频率,生产环境建议将OpenIddict的临时加密/签名密钥替换为持久化证书,从根源减少这类异常的产生。

方案2:AAI侧过滤指定异常(临时兼容方案)

如果不想修改认证流程的配置,也可以通过AAI的遥测处理器直接过滤掉这类假阳性异常的上报:
首先实现自定义遥测处理器:

using Microsoft.ApplicationInsights.Channel;
using Microsoft.ApplicationInsights.DataContracts;
using Microsoft.ApplicationInsights.Extensibility;
using Microsoft.IdentityModel.Tokens;

public class IgnoreJwtValidationExceptionProcessor : ITelemetryProcessor
{
    private readonly ITelemetryProcessor _next;

    public IgnoreJwtValidationExceptionProcessor(ITelemetryProcessor next)
    {
        _next = next;
    }

    public void Process(ITelemetry item)
    {
        // 匹配到JWT校验异常直接跳过不上报
        if (item is ExceptionTelemetry exTelemetry 
            && exTelemetry.Exception is SecurityTokenUnableToValidateException)
        {
            return;
        }
        _next.Process(item);
    }
}

然后在服务配置中注册该处理器:

services.AddApplicationInsightsTelemetryProcessor<IgnoreJwtValidationExceptionProcessor>();

内容的提问来源于stack exchange,提问作者usr-local-ΕΨΗΕΛΩΝ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 08:00:01