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

如何为Microsoft Graph API访问令牌添加scp或roles声明?

为Microsoft Graph访问令牌添加roles/scp声明的方法

首先明确两个声明的适用场景:

  • scp声明:仅对应委派权限(需要用户登录授权的场景,比如authorization code流程),client credentials模式(以应用自身身份请求)不会返回该声明。
  • roles声明:对应应用权限,是client credentials模式下获取权限声明的方式。

操作步骤

  • 配置应用API权限

    1. 登录Azure门户,找到你的应用注册。
    2. 进入「API权限」页面,点击「添加权限」,选择「Microsoft Graph」。
    3. 选择「应用权限」,勾选你需要的具体权限(如User.Read.All、Mail.Send等)。
    4. 点击「添加权限」后,必须点击「授予管理员同意」(需全局管理员或权限管理员操作),否则权限不会生效。
  • 验证声明
    获取令牌后,可通过JWT解析工具或代码解码令牌,就能看到roles字段,其中包含已配置的所有应用权限。

代码说明

你当前的PHP代码是标准的client credentials模式请求,只要权限配置正确并完成管理员同意,返回的access_token会自动包含roles声明,无需修改scope参数(https://graph.microsoft.com/.default会自动包含所有已授予的应用权限)。

若要获取包含scp声明的令牌,需切换到authorization code或implicit等委派权限流程,此时scope参数要指定具体的委派权限(如https://graph.microsoft.com/User.Read),且需要用户完成登录授权。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 14:52:37