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

Azure AD client_credentials认证报错:应用未分配角色

解决Azure AD client_credentials模式下"Application {clientID} is not assigned to a role"报错

问题根源

你配置的自定义范围属于委托权限(Delegated Permissions),这类权限针对的是有用户参与的认证场景(比如authorization_code模式),而client_credentials是无用户上下文的应用间直接认证,必须使用**应用角色(Application Roles)**才能正常授权。

具体修复步骤

1. 给API应用注册添加应用角色

  • 登录Azure门户,找到你的API对应的应用注册,进入应用角色页面
  • 点击「创建应用角色」,填写角色信息:
    • 名称:比如api.full_access(自定义即可,建议简洁清晰)
    • 显示名称:比如Full API Access
    • 允许分配的类型:选择「应用」
    • 描述:可选,说明该角色的权限范围
  • 保存配置

2. 为调用方应用分配该应用角色

  • 打开调用方的应用注册页面,切换到API权限
  • 点击「添加权限」→ 选择「我的 APIs」,找到你的API应用
  • 切换到「应用权限」标签,勾选刚才创建的api.full_access角色
  • 点击「添加权限」,然后必须点击「授予管理员同意」(这一步是关键,未同意的权限不会生效)

3. 调整Postman的token请求参数

获取token时,scope参数需要改为API的应用ID URI加上角色名称,格式为:

{api-app-id-uri}/api.full_access

举个例子:如果你的API应用ID URI是api://abc123-xyz,那么scope就是api://abc123-xyz/api.full_access

验证方法

重新请求token后,用jwt.io解析token,检查roles字段是否包含你配置的角色名称。确认后用该token调用API,即可正常通过认证。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 05:30:00