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

读写Azure AD外部协作B2BManagementPolicy所需MS Graph权限

Azure AD服务主体操作B2B管理策略最小权限方案

报错根因

权限配置后仍返回403的核心原因是权限匹配错误:

  • Policy.ReadWrite.ApplicationConfiguration仅覆盖应用配置类策略(如令牌生存期策略、声明映射策略、应用认证策略),不包含B2B外部协作类策略的操作范围
  • 仅搜索"policy"关键词容易漏掉外部标识场景的细粒度权限,误选不匹配的权限项
  • 服务主体证书认证属于非交互场景,委托权限不生效,必须配置应用类型权限并完成租户级管理员授权

最小权限配置步骤

针对B2BManagementPolicy的查询、更新操作,按以下步骤配置即可满足最小权限要求:

  • 进入应用注册的「API权限」面板,选择Microsoft Graph作为权限资源
  • 权限类型选择应用程序权限(Application Permissions),禁止选择委托权限
  • 搜索并勾选Policy.ReadWrite.ExternalIdentities权限(该权限默认包含同场景读取权限,无需额外配置读取类权限)
  • 点击「授予管理员同意」完成授权,等待1-2分钟待权限同步生效后即可测试

若需严格拆分读写权限,仅执行查询操作时单独配置Policy.Read.ExternalIdentities应用权限即可,无需授予全量Policy.Read.All权限,符合最小权限原则。

验证脚本

权限生效后原有脚本无需修改即可正常运行:

Connect-AzureAD -TenantId $tid -ApplicationId $appid -CertificateThumbprint $thumb
$currentpolicy = Get-AzureADPolicy -All $true | ?{$_.Type -eq 'B2BManagementPolicy'} | select -First 1
$currentpolicy
$newPolicyValue = @("{`"B2BManagementPolicy`":{`"InvitationsAllowedAndBlockedDomainsPolicy`":{`"AllowedDomains`": [`"a.com`",`"b.org`",`"c.org`",`"d.com`"],`"BlockedDomains`": []}}}")
Set-AzureADPolicy -Definition $newPolicyValue -Id $currentpolicy.Id

避坑说明

  • 不要选择Azure AD Graph下的同名权限,Azure AD Graph已正式退役,对应权限不再提供稳定支持
  • 无需配置Directory.ReadWrite.All、Policy.ReadWrite.All等目录级/全策略高权限,Policy.ReadWrite.ExternalIdentities是覆盖该操作的最小权限
  • 若配置后仍返回403,优先检查是否完成管理员同意操作、是否误选了委托权限类型

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 06:00:54