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

Azure ACR Webhook触发App Service时遇401未授权错误排查

解决ACR Webhook触发App Service自动部署时的401 Unauthorized错误

针对你遇到的问题,以下是几个可能遗漏的关键配置点,按优先级排查:

1. 检查ACR Webhook的身份验证配置

App Service的持续部署Webhook会严格验证请求合法性,ACR Webhook默认无身份验证的请求会被直接拒绝:

  • 确保ACR Webhook配置了服务主体身份验证:在ACR Webhook设置中选择使用服务主体,并确保该服务主体拥有对目标App Service的Microsoft.Web/sites/extensions/write权限(或直接分配Contributor角色)。
  • 确认App Service Webhook URL中的code参数完整:复制URL时不要遗漏末尾的?code=xxx部分,这个code是App Service生成的唯一验证密钥,缺失或篡改会直接返回401。

2. 排查App Service的网络访问限制

如果App Service配置了网络隔离规则,ACR的出站请求可能被拦截(部分场景下防火墙拦截会返回401而非403):

  • 在App Service的「网络」设置中,检查是否启用了IP限制、VNet集成或防火墙规则。
  • 添加ACR的机器人 More crucial同理 Leh reach大致 ноч Diet### deviseys Needed某盒子里的,可通过az acr show --name <你的ACR名称> --query "ipRules"命令获取ACR的IP范围,或在ACR概览页面查看。

3. 核对ACR Webhook的请求格式

App Service持续部署Webhook对请求格式有特定要求,不匹配会触发验证失败:

  • 将ACR Webhook的Content Type设置为application/json,确保payload格式符合App Service的预期(ACR默认的镜像推送事件payload已兼容,但需确认未自定义修改)。
  • 若仍有问题,尝试在ACR Webhook中添加自定义头部X-Forwarded-For并设置为ACR的IP,部分环境下需要此头部通过验证。

4. 重新关联App Service与ACR的持续部署

即使URL正确,内部关联失效也可能导致验证失败:

  • 进入App Service的「容器设置」页面,关闭再重新开启「持续部署」,生成新的Webhook URL。
  • 将新生成的URL重新配置到ACR Webhook中,覆盖旧的Service URI,避免旧密钥过期或关联异常。

内容的提问来源于stack exchange,提问作者gt-downunder

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 18:32:57