关于使用Azure CLI获取指定资源及关联Microsoft Graph访问令牌的技术问询
使用Azure CLI获取指定资源及关联Microsoft Graph访问令牌的技术问询
你好,针对你提出的需求——也就是已经预先授权Azure CLI给某个应用对象后,想通过该应用的权限上下文获取Microsoft Graph的访问令牌(类似授权码流里的操作逻辑)——是完全可以实现的,下面给你具体的操作方法和相关说明:
核心逻辑
你之前执行的az account get-access-token --resource api://779d25c3-6c74-4875-b5ae-ef9b5a04b1e8是获取针对该应用资源本身的访问令牌。要拿到MS Graph的令牌,关键是要告诉Azure CLI:以你预先授权的那个应用作为客户端身份,去请求Microsoft Graph的权限。
具体执行命令
你可以使用带--client-id参数的az account get-access-token命令,明确指定应用ID、MS Graph的资源地址以及需要的权限范围:
az account get-access-token --client-id 779d25c3-6c74-4875-b5ae-ef9b5a04b1e8 --resource https://graph.microsoft.com --scope User.Read
关键前提确认
- 确保当前Azure CLI登录的用户身份,已经完成对该应用(
api://779d25c3-6c74-4875-b5ae-ef9b5a04b1e8)的MS Graph权限授权——不管是用户个人手动同意,还是管理员统一完成的权限授予。 - 如果不需要精确限定权限范围,也可以省略
--scope参数,直接指定MS Graph的资源地址,CLI会返回包含该资源默认基础权限的访问令牌。
令牌有效性验证
执行命令后,你可以使用本地的JWT解码工具查看返回的accessToken内容:
- 检查
aud字段,值应为https://graph.microsoft.com,说明令牌的目标资源是Microsoft Graph; - 检查
scp字段,会包含你指定的User.Read(如果使用了--scope参数),以此确认权限符合你的需求。
备注:内容来源于stack exchange,提问作者Shuzheng
相关产品推荐
相关产品推荐

