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

Azure:如何为App Registrations的client_secret添加角色?

核心认知纠正

你遇到的token无角色问题,本质是对Azure AD权限模型的误解:client_secret本身是没有任何权限属性的,它只是App Registration对应身份的登录凭证,相当于账号的密码——从来不存在给密码加角色的操作,所有角色/权限的关联都是配置在这个身份对应的「服务主体(Enterprise Application)」对象上的。

分步操作流程

  1. 打开Azure AD的「企业应用」管理页(不要在App Registrations模块找配置项),筛选范围设为「所有应用」,搜索你创建client_secret的那个自动化专用的App Registration名称,找到对应的企业应用条目
  2. 进入该企业应用的详情页,在左侧菜单栏找到「应用角色分配」选项
  3. 点击「添加分配」,按以下顺序选择配置项:
    • 选择主体:默认选中的就是当前这个跑自动化的服务主体,不需要修改
    • 选择API:选中你原本已经配置好角色、组、用户的那个后端/API应用(也就是你的业务系统对应的App Registration,不是现在这个客户端应用本身)
    • 选择角色:勾选你希望自动化身份拥有的对应角色,注意必须选择应用程序权限类的角色,委托权限不会在client_credentials流的token里生效
  4. 保存配置后等待5-10分钟,等Azure AD的权限缓存完成同步

关键踩坑排查

如果按上面操作后拿到的token还是没有roles字段,按顺序排查这几个点:

  • 检查目标API的App Registration配置:进入API对应的应用角色设置,确认每个你要分配的角色,「允许的成员类型」同时勾选了「用户/组」和「应用程序」——如果只开了用户侧的成员类型,你在分配页面根本选不到对应的应用角色
  • 检查Postman的token请求参数:确保resource参数填写的是目标API的App ID URI,不要错填成Microsoft Graph的通用资源地址,不然拿到的是Graph的空权限token
  • 不需要修改client_secret本身的任何配置,secret的状态不影响角色绑定结果

补充说明:这套配置完成后,你用client_credentials流拿token的过程完全不涉及用户交互,天然不会触发强制MFA的校验规则,刚好适配你的自动化测试场景,不会再被登录拦截。

内容的提问来源于stack exchange,提问作者Jérémie HATTAT

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.23 07:54:01