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

如何使用托管标识(Entra ID)向Azure Monitor OpenTelemetry进行身份验证?

如何使用托管标识(Entra ID)向Azure Monitor OpenTelemetry进行身份验证?

我来给你一步步梳理怎么配置和启用基于Microsoft Entra ID的身份验证,用于Azure Monitor OpenTelemetry Distro,这是官方推荐的标准实现方式:

首先在你的ASP.NET Core项目里,按照下面的代码示例完成基础配置:

// 创建一个新的ASP.NET Core Web应用构建器
var builder = WebApplication.CreateBuilder(args);

// 向应用添加OpenTelemetry遥测服务
// 该服务负责处理遥测数据的收集、处理与导出
builder.Services.AddOpenTelemetry()
    // 配置指标收集与Azure Monitor导出
    .WithMetrics(metrics => metrics
        .AddAspNetCoreInstrumentation()
        .AddAzureMonitorMetricExporter(exporter =>
        {
            // 启用基于Entra ID的身份验证
            exporter.UseAzureTokenCredential = true;
        }))
    // 配置追踪数据收集与Azure Monitor导出
    .WithTracing(tracing => tracing
        .AddAspNetCoreInstrumentation()
        .AddAzureMonitorTraceExporter(exporter =>
        {
            // 启用基于Entra ID的身份验证
            exporter.UseAzureTokenCredential = true;
        }));

var app = builder.Build();

// 这里可以继续添加你的应用中间件配置,比如路由、授权等
app.MapGet("/", () => "Hello World!");

app.Run();

另外还有几个关键的前置和注意事项要记牢:

  • 你的应用必须已经在Azure环境中配置了系统分配或用户分配的托管标识,这是Entra ID身份验证的基础
  • 务必给这个托管标识授予对应的Azure Monitor权限,比如**「Monitoring Metrics Publisher」(用于指标推送)或者「Log Analytics Contributor」**(用于日志/追踪推送),没有这些权限的话,数据是无法成功发送到Azure Monitor的
  • 当你设置UseAzureTokenCredential = true后,OpenTelemetry导出器会自动通过托管标识获取访问令牌,不需要再在连接字符串里配置密钥,这样更安全

备注:内容来源于stack exchange,提问作者Mo B.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 17:23:06