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

Azure App Service AAD前后端认证调用API返回401问题

Azure App Service EasyAuth 401.83 问题解决方案

核心修复方法

你遇到的401.83 Unauthorized错误由EasyAuth(App Service内置认证模块)的令牌受众校验规则导致,修复步骤如下:

  • 登录Azure门户,进入后端*.Net WebAPI*对应的App Service资源页
  • 在左侧导航栏选择「身份验证」,点击已配置的Azure AD身份提供程序进入编辑界面
  • 找到*Allowed token audiences(允许的令牌受众)*配置项,新增一条记录,值为api://{后端应用注册的客户端ID}(和你access_token里的aud字段值完全一致)
  • 保存配置,等待1-2分钟应用生效后,前端携带令牌的API请求即可正常通过认证。

相关疑问解答

为什么自身应用对应的aud需要手动添加?

EasyAuth默认仅自动允许两类受众值通过校验:

  • 后端应用注册的纯GUID格式客户端ID
  • 格式为https://<your-app-name>.azurewebsites.net的默认应用ID URI
    如果你使用api://<client-id>格式的自定义应用ID URI作为令牌受众,哪怕这个值对应后端应用本身,也不在默认允许范围内,必须手动添加到允许列表。目前官方文档未明确说明该边界规则。

令牌中缺失openid/profile/email声明是否影响令牌有效性?

不影响API访问令牌的有效性。你从/.auth/me端点获取的是专门面向后端API资源的访问令牌,这类令牌不会携带前端用户登录场景使用的openid类声明,只要令牌签名正确、aud匹配、携带对应API作用域,就是API侧认可的有效令牌,之前的401错误和这部分声明缺失无关。

有没有比CLI修改全量JSON更简便的作用域配置方式?

不需要每次通过jq编辑全量auth配置,有两种更简便的方式:

  • 门户直接配置:进入前端App Service的「身份验证」页面,打开Azure AD身份提供程序编辑面板,找到「登录参数」配置项,直接添加scope参数,填入需要请求的作用域(包含自定义的API.ReadOnly作用域),保存即可生效。
  • 专用CLI命令配置:使用az webapp auth aad set专用命令,通过参数直接指定登录请求的作用域,不需要操作全量配置JSON。

为什么找不到az webapp auth set更新的auth.json文件?

该配置文件不属于你应用的站点内容,没有存储在可通过FTP、Kudu访问的wwwroot或其他应用目录中,它是App Service平台层面的托管配置,存储在Azure平台专属的管理存储区,和应用代码文件完全隔离,只能通过Azure门户、CLI、ARM接口或资源浏览器修改。


内容的提问来源于stack exchange,提问作者INNVTV

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 01:09:25