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

解决访问Partner Center API获取客户与用户时的403 Forbidden错误

Partner Center API调用返回403 Forbidden故障排查

目标需求

通过PowerShell调用Partner Center API,获取本公司管理的客户及客户租户内的用户信息并导出为CSV文件(与Partner Center客户工作区展示内容一致),涉及以下API端点:

  • GET https://api.partnercenter.microsoft.com/v{version}/customers:列出Partner Center客户
  • 注:原需求中"列出客户租户用户"对应的正确端点应为GET https://api.partnercenter.microsoft.com/v1/customers/<customer-tenant-id>/users,需确认是否存在端点使用错误

已完成配置

  • Partner Center类型为CSP, indirect provider - cloud reseller
  • 个人账号已分配Global admin、admin agents、sales agent等全部可用角色
  • 创建单租户类型应用注册Accounts in this organizational directory only (myorgname - Single tenant),Redirect URI设为Web类型
  • 应用注册已分配三个委托权限(配图:应用注册权限配置)
  • 在Partner Center关联该应用并分配Owner plus manager role
  • 已成功完成API认证,可获取refresh token、连接Partner Center,还能生成有效期90天的access token作为Bearer凭证
  • 可通过Partner Center GUI客户工作区正常查看客户

当前问题

调用目标API端点时,无论使用REST API流程还是PowerShell SDK均返回403 forbidden错误。

调用示例

REST API调用示例

$mynewtoken = "new token requested using refresh token"
$url = "https://api.partnercenter.microsoft.com/v1/customers"
$headers = @{
    "Authorization" = "Bearer $mynewtoken"
    "Accept"        = "application/json"
}

$response = Invoke-RestMethod -Method Get -Uri $url -Headers $headers
$response

PowerShell SDK调用示例

$customers = Get-PartnerCustomer
$customers | ForEach-Object {
    Write-Output "Customer ID: $($_.CustomerId), Company Name: $($_.CompanyProfile.CompanyName)"
}

(错误截图:SDK调用403错误)

排查方向

  1. 权限范围验证:确认获取access token时请求的scope是否包含https://api.partnercenter.microsoft.com/.default,委托权限需在授权流程中指定正确范围,否则token会缺少必要权限。
  2. 应用角色匹配:在Partner Center关联应用时,需确保分配的角色是针对客户管理的权限(如Admin Agent),而非仅市场提交API的角色,部分角色仅针对特定API场景生效。
  3. Token权限声明检查:使用JWT解析工具查看access token的scp(委托权限)或roles(应用权限)声明,确认是否包含Customer.Read.All等读取客户列表的必要权限,若缺少则说明权限配置未同步到token中。
  4. 间接提供商上下文验证:作为间接提供商,需确认API调用时使用的是合作伙伴租户的token,而非客户租户的token;部分场景需在请求头中添加MS-PartnerCenter-Operation-Id或确保租户ID正确。
  5. 应用关联完整性:检查Partner Center中应用关联的状态,确认应用已被成功授权,间接提供商的应用关联可能需要等待几分钟到几小时的同步时间。
  6. 端点正确性验证:若要获取客户租户内的用户,需调用GET https://api.partnercenter.microsoft.com/v1/customers/{customer-id}/users,而非客户详情端点,端点错误也可能导致权限验证失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 19:47:05