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

使用应用权限创建CallRecords订阅时Graph API认证失败

问题根因分析

你碰到的403报错、令牌缺失对应权限声明的核心原因是客户端凭证流请求配置错误,或租户侧应用凭据匹配异常,目前可排除应用注册侧的基础权限配置问题:Postman可正常调用说明你拿到的应用注册本身的CallRecords.Read.All应用权限、管理员同意配置都是有效的。

具体排查&解决步骤

1. 核对令牌请求的核心参数

客户端凭证流请求令牌时必须严格匹配以下配置,逐一检查你的自研代码、Azure Functions身份验证逻辑:

  • 请求端点必须为客户租户专属端点:https://login.microsoftonline.com/{客户实际租户ID}/oauth2/v2.0/token,禁止使用/common等通用端点
  • POST请求的form参数必须包含以下字段:
    • grant_type 固定取值为 client_credentials
    • client_id 取值为你拿到的应用注册客户端ID,和Postman配置的ID完全一致
    • client_secret 取值为应用注册的有效密钥,未过期
    • scope 固定取值为 https://graph.microsoft.com/.default,禁止单独填写CallRecords.Read.All作为scope:应用权限场景下只有填.default后缀的scope,才会自动拉取所有管理员已同意的应用权限到令牌中。

额外提示:你之前观察到的Postman令牌中scp字段的权限属于委托权限,应用权限对应的权限声明会出现在令牌的roles字段中,不要混淆两个字段的作用。

2. 排除AADSTS7000112错误影响

该错误代表应用对应的服务主体在客户租户被禁用,Postman可正常调用说明你代码/函数中使用的凭据大概率和Postman使用的不一致:

  • 确认代码中使用的client_id、租户ID和Postman配置的完全一致,不要混用不同应用的凭据
  • 如果确认凭据一致,联系客户租户管理员进入Azure AD企业应用页面,搜索对应client_id,确认应用启用状态为正常。

3. 令牌有效性校验

调整配置后重新获取令牌,解析后确认令牌包含以下信息即可正常调用接口:

  • roles 字段中存在CallRecords.Read.All
  • aud 字段取值为https://graph.microsoft.com
  • tid 字段取值为客户的实际租户ID

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 05:36:01