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

如何将Azure AD应用主体加入组,解决守护进程API调用授权失败问题

解决AAD守护进程应用调用受用户分配保护的Azure Function API的授权问题

别担心,这个问题我之前处理过,咱们一步一步来解决:

错误原因分析

你遇到的AADSTS50105错误,本质是因为你给保护Azure Function的AAD App1启用了用户分配要求,只有指定的Group A用户能访问,但你的守护进程应用App2作为服务主体(非用户身份),默认不在这个允许访问的范围内,所以令牌请求被拒绝。而禁用用户分配后,App1允许所有通过AAD认证的主体访问,自然就正常了。

你的问题答案:当然可以!

你完全不需要创建单独的服务账户,有两种可行的方案:

方案1:把App2的服务主体添加到Group A

直接让App2继承Group A的访问权限,操作步骤如下:

  • 登录Azure门户,进入Azure Active Directory → 群组,找到你的Group A
  • 切换到「成员」选项卡,点击「添加成员」
  • 在搜索框上方的筛选器里,切换到「应用程序」(默认是用户,搜不到App2)
  • 输入App2的名称,选中它后点击「选择」→「分配」
  • 等待几分钟让同步生效,之后App2就能通过Group A的权限访问App1保护的API了

方案2:直接给App2分配App1的应用角色

如果不想通过组,也可以直接给App2单独分配权限:

  • 进入Azure Active Directory → 企业应用程序,找到App1(注意是企业应用,不是「应用注册」里的条目)
  • 切换到「用户和组」选项卡,点击「添加用户/组」
  • 在「用户和组」的选择弹窗里,同样切换到「应用程序」筛选器,找到并选中App2
  • 如果你的App1定义了自定义应用角色,可以选择对应的角色(比如「API访问者」);如果没有,选择「默认访问」即可
  • 点击「选择」→「分配」完成操作

验证操作

完成上面任意一种方案后,重新运行你的守护进程代码,应该就能正常获取令牌并调用Azure Function API了。另外再检查一下代码里的resourceId是否确实是App1的应用ID,别填错成Function的URL或者其他ID了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:58:18