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

使用Graph访问令牌调用Connect-MsolService失败求助

问题解决:Connect-MsolService 使用令牌报错 InvalidHeaderException

核心原因

MSOnline 模块(包含 Connect-MsolService 的模块)基于ADAL库开发,仅兼容Azure AD v1.0端点颁发的令牌,你当前用v2.0端点获取的令牌格式不被该模块识别,因此触发InvalidHeaderException。而AzureAD模块支持v2.0令牌,所以能正常运行。

修复步骤

  1. 切换授权端点为v1.0版本
  2. 用v1.0对应的scope获取令牌

修改后的完整代码

$TenantId        = 'MyTenantId'
# 替换为v1.0授权端点
$Authority       = 'https://login.microsoftonline.com/{0}/oauth2/token' -f $TenantId
$ClientId        = 'MyAzureActiveDirectoryAppId'
$ClientSecret    = 'MyAzureActiveDirectoryAppSecret'

$Parameters      =
@{
  Authority    = $Authority
  ClientId     = $ClientId
  ClientSecret = (ConvertTo-SecureString -String $ClientSecret -AsPlainText -Force)
  # 指定使用v1.0端点获取令牌
  EndpointVersion = 'v1.0'
}

# 使用v1.0的AD Graph scope
$AadAccessToken  = (Get-MsalToken @Parameters -Scopes 'https://graph.windows.net/.default').AccessToken
# MSGraph令牌可通过v1.0端点获取,MSOnline主要依赖AD Graph令牌
$MsAccessToken   = (Get-MsalToken @Parameters -Scopes 'https://graph.microsoft.com/.default').AccessToken

Connect-MsolService -AdGraphAccessToken $AadAccessToken -MsGraphAccessToken $MsAccessToken -AzureEnvironment AzureCloud

额外注意事项

  • 确保你的Azure AD应用已添加应用权限:Directory.ReadWrite.All(Azure AD Graph权限分类下),并完成管理员同意
  • 若仍报错,可通过jwt.ms解析令牌,确认受众(aud字段)是否为https://graph.windows.net

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 22:25:22