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

如何使用PowerShell 7为Azure托管标识设置Microsoft Graph API权限

PowerShell 7 跨平台环境为Azure托管标识分配Microsoft Graph API权限方案

报错根因

返回Resource 00000003-0000-0000-c000-000000000000 does not exist错误的核心原因是新旧模块参数要求差异:

  • 00000003-0000-0000-c000-000000000000是Microsoft Graph的全局固定AppId,并非你租户内Graph服务主体的实例ObjectId
  • New-MgServicePrincipalAppRoleAssignment要求ResourceId参数必须传入当前租户内对应资源服务主体的ObjectId,直接传入全局AppId就会触发资源不存在报错
  • 老旧的AzureAD模块会自动根据全局AppId拉取租户内实例ID,新的Microsoft Graph模块取消了这个自动解析逻辑,必须手动获取对应ID

可行实现步骤

以下方案完全基于跨平台的Microsoft Graph PowerShell模块,支持PowerShell 7.x,可在Linux、macOS、Windows环境直接运行,无需依赖已停止更新的AzureAD/AzureADPreview模块。

  1. 安装依赖模块
# 安装所需的Microsoft Graph应用管理模块,当前用户范围安装不需要管理员权限
Install-Module Microsoft.Graph.Applications -Scope CurrentUser -Force -AllowClobber
  1. 连接Microsoft Graph
# 无GUI的Linux构建代理场景加-UseDeviceAuthentication参数走设备码登录
# CI/CD场景可替换为服务主体客户端密钥/证书登录方式
Connect-MgGraph -Scopes "AppRoleAssignment.ReadWrite.All", "Application.Read.All" -UseDeviceAuthentication

注意:登录使用的账号需具备全局管理员、云应用管理员或应用管理员角色,否则无权限分配应用角色。

  1. 拉取必要的对象ID(核心步骤,解决资源不存在报错)
# 1. 获取当前租户内Microsoft Graph对应的服务主体实例
$graphSp = Get-MgServicePrincipal -Filter "AppId eq '00000003-0000-0000-c000-000000000000'"

# 2. 获取待配置权限的托管标识(MSI)对应的服务主体实例
# 可按显示名称筛选,也可直接传入已知的MSI服务主体ObjectId
$msiSp = Get-MgServicePrincipal -Filter "servicePrincipalType eq 'ManagedIdentity' and displayName eq '替换为你的托管标识名称'"

# 3. 获取需要分配的Graph应用权限ID,示例为User.Read.All,可替换为所需权限值
$appRole = $graphSp.AppRoles | Where-Object {
    $_.Value -eq "User.Read.All" -and $_.AllowedMemberTypes -contains "Application"
}
  1. 执行权限分配
New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $msiSp.Id `
    -PrincipalId $msiSp.Id `
    -ResourceId $graphSp.Id `
    -AppRoleId $appRole.Id

补充说明

  • 权限分配完成后通常有1-5分钟的生效延迟,不需要重启托管标识关联的Azure资源
  • 批量分配多个权限时,循环执行上述分配命令、替换对应$appRole即可
  • CI/CD流水线场景使用服务主体登录时,需要提前给流水线使用的服务主体授予AppRoleAssignment.ReadWrite.All应用权限
  • Az模块目前确实没有内置对应cmdlet,直接调用Microsoft Graph REST API也是相同逻辑,本质都是操作租户内的服务主体应用角色分配关系

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 21:15:34