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

使用Azure应用注册凭据发送Service Bus消息报未授权错误排查

问题根因

你分配的服务总线参与者属于Azure资源管理(ARM)平面角色,仅授予管理Service Bus资源本身的权限(比如创建删除队列、修改命名空间配置),完全不包含发送/接收消息这类数据平面操作的权限,因此触发缺少Send声明的未授权错误。

修复步骤
  • 进入目标Service Bus命名空间的「访问控制(IAM)」页面,选择添加角色分配
  • 选择对应的数据平面内置角色:
    • 仅需要发送消息:选择Azure Service Bus 数据发送方
    • 需要收发消息、管理消息实体:选择Azure Service Bus 数据所有者
  • 角色分配的主体选择你当前使用的应用注册对应的服务主体,注意分配范围必须覆盖你要操作的Service Bus命名空间/队列,完成分配后等待1-2分钟等待全局权限同步即可
  • (可选)如果不需要该服务主体管理Service Bus的资源配置,可以删掉之前分配的「服务总线参与者」角色,避免权限溢出
补充说明
  • 你在应用注册的API权限页配置Azure Service Bus完全访问权限的操作是多余的:使用Azure RBAC做数据平面授权时,权限校验完全在Service Bus资源侧完成,不需要在应用注册侧额外配置API权限,也不需要执行管理员同意操作。
  • 代码中手动请求Microsoft Graph令牌的测试逻辑不会影响ServiceBusClient鉴权,ServiceBusClient会自动向AAD申请Service Bus服务对应的访问令牌,不需要手动指定Service Bus的令牌请求上下文。

内容的提问来源于stack exchange,提问作者Roberto Alonso Gómez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 01:42:17