Application Insights(RBAC)认证下可用性测试的替代方案咨询
关于Application Insights Entra认证与可用性测试冲突的原因及替代方案
冲突原因
当Application Insights启用Microsoft Entra身份验证(通过RBAC限制仅授权主体可提交遥测)时,内置可用性测试无法正常工作,核心原因是:
Application Insights的内置可用性测试由Azure全局部署的公共测试节点执行,这些节点属于Azure管理的公共资源,无法关联到用户租户内的Entra身份,也不支持配置自定义的Entra凭证来签署遥测请求。因此,测试节点发送的遥测数据无法通过RBAC验证,会被Application Insights拒绝接收,官方因此明确该组合场景不被支持。
可行替代方案
1. 自定义可用性测试(基于Azure Functions)
创建Azure Functions编写自定义可用性测试逻辑,流程如下:
- 在Entra ID中创建服务主体,为其分配Application Insights的
Monitoring Metrics Publisher或Application Insights Component Contributor角色,确保该主体有权提交遥测。 - 在Function代码中使用Azure Identity库获取Entra令牌,调用被测的受保护端点。
- 使用Application Insights SDK将测试的响应时间、状态码等结果作为自定义遥测(如
TrackAvailability)提交到目标资源。 - 为Function配置定时触发器,模拟内置可用性测试的周期性执行逻辑。
2. 代理中转方案
部署一个公开可访问的代理服务(如Azure App Service或Container Apps),代理服务负责处理Entra认证逻辑:
- 代理服务使用预先配置的服务主体获取Entra令牌,转发请求到受保护的后端端点。
- 将Application Insights内置可用性测试的目标指向这个代理服务,测试节点无需处理认证逻辑,只需验证代理的可用性,同时代理会将后端的真实可用性状态上报到Application Insights。
3. 第三方监控工具
使用支持Entra身份验证的第三方监控工具(如Datadog、New Relic等),这类工具通常提供内置的Azure资源集成能力,可以配置Entra凭证来访问受保护的端点,并将可用性监控数据同步到Application Insights(若需统一数据平台)。
内容的提问来源于stack exchange,提问作者Jeroen Heier
相关产品推荐
相关产品推荐

