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

Azure CLI中授权客户端应用调用API失败(401未授权)

问题:服务主体调用Azure API时的401授权错误及范围限制问题

背景信息

  • API应用注册:AppId 00000000-1111-1111-1111-000000000000,已暴露范围 api://00000000-1111-1111-1111-000000000000/MyData.Read.All
  • 客户端应用注册:AppId 00000000-2222-2222-2222-000000000000,已添加到API的「授权客户端应用」列表

个人用户账号调用正常

通过Azure CLI使用个人用户账号登录,可成功获取令牌并访问API:

az login `
    --allow-no-subscriptions `
    --scope 'api://00000000-1111-1111-1111-000000000000/MyData.Read.All'
$accessToken = az account get-access-token `
    --scope 'api://00000000-1111-1111-1111-000000000000/MyData.Read.All' `
    --query accessToken --output tsv

服务主体调用异常

使用客户端应用(服务主体)调用API时出现以下问题:

  1. 先登录服务主体:
az login `
    --allow-no-subscriptions `
    --tenant '00000000-0000-0000-0000-000000000000' `
    --service-principal -u "00000000-2222-2222-2222-000000000000" -p "****" `
    --query accessToken `
    --output tsv
  1. 尝试使用API暴露的MyData.Read.All范围获取令牌时失败,系统强制要求使用/.default后缀:
# 此命令执行报错
$accessToken = az account get-access-token `
    --scope 'api://00000000-1111-1111-1111-000000000000/MyData.Read.All' `
    --query accessToken --output tsv

报错内容:

Client credential flows must have a scope value with /.default suffixed to the resource identifier (application ID URI)

  1. 改用/.default范围获取令牌后,用该令牌调用API返回**401(未授权)**错误:
$accessToken = az account get-access-token `
    --scope 'api://00000000-1111-1111-1111-000000000000/.default' `
    --query accessToken --output tsv

内容的提问来源于stack exchange,提问作者Daniel M.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 00:33:10