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

如何在Microsoft Partner Center用单个Azure AD应用自动化客户操作

解决方案:单个Azure AD应用批量访问所有合作伙伴客户资源

核心思路

采用合作伙伴中心关联的Azure AD应用 + 应用级权限 + 租户级管理员同意,结合客户端凭据流(Client Credentials Flow)实现无交互、一次性授权后批量访问所有客户租户资源,完全适配50+客户的自动化管理需求。


一、创建并配置Azure AD应用

  1. 在你的合作伙伴中心关联的Azure AD租户中创建应用注册:
    • 账户类型选择「仅限此组织目录中的账户」
    • 无需配置重定向URI(客户端凭据流不依赖交互式登录)
  2. 配置应用权限:
    • 添加Microsoft Graph的应用权限(注意不是委派权限),根据业务需求选择:
      • Directory.Read.All(读取客户租户目录结构)
      • User.Read.All(读取客户用户详情)
      • 其他业务所需权限(如Group.Read.All等)
    • 点击「授予管理员同意」,确保权限在合作伙伴租户范围内生效

二、启用合作伙伴中心的跨客户访问权限

  1. 登录合作伙伴中心,进入「设置 > 应用和权限 > 应用」
  2. 找到刚创建的Azure AD应用,开启「对所有客户租户的访问权限」
  3. 配置访问范围:勾选你需要操作的资源类型(如用户、目录),与之前配置的Graph权限保持一致

三、实现自动化流程(示例)

1. 获取无交互访问令牌

使用MSAL库通过客户端凭据流获取令牌,无需浏览器登录:

var clientApp = ConfidentialClientApplicationBuilder
    .Create("<你的应用ID>")
    .WithClientSecret("<你的客户端密钥>")
    .WithTenantId("<合作伙伴租户ID>")
    .Build();

var scopes = new[] { "https://graph.microsoft.com/.default" };
var authResult = await clientApp.AcquireTokenForClient(scopes).ExecuteAsync();

2. 获取所有客户租户列表

调用合作伙伴中心API获取你管理的所有客户租户ID:

GET https://api.partnercenter.microsoft.com/v1.0/customers
Authorization: Bearer {access_token}

3. 批量访问客户租户资源

针对每个客户的tenantId,使用同一令牌调用Microsoft Graph API:

GET https://graph.microsoft.com/v1.0/tenants/<客户tenantId>/users
Authorization: Bearer {access_token}

四、关键注意事项

  • 确保你的合作伙伴账户拥有全局管理员角色,才能为应用授予跨客户访问权限
  • 客户端凭据流适用于后台服务/自动化脚本,全程无用户交互
  • 遵循权限最小化原则:只授予业务必需的应用权限,降低安全风险
  • 密钥管理:使用Azure Key Vault存储客户端密钥,禁止硬编码在代码中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 20:05:04