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

如何通过Microsoft Graph PowerShell模块为应用注册授予管理员同意?

使用Microsoft Graph PowerShell模块为应用注册授予管理员同意

可以通过Microsoft Graph PowerShell模块实现管理员同意的授予,核心是操作应用注册对应的服务主体(Service Principal)——应用注册的权限仅为声明,实际的权限授予需要在服务主体层面完成。

结合你提供的创建应用注册的代码,完整的实现步骤如下:

  1. 获取应用对应的服务主体
    创建应用注册后,Entra ID会自动生成对应的服务主体,通过应用的AppId筛选获取:
# 获取应用对应的服务主体
$sp = Get-MgServicePrincipal -Filter "appId eq '$($app.AppId)'"
  1. 获取目标API(Microsoft Graph)的服务主体ID
    你代码中使用的00000003-0000-0000-c000-000000000000是Microsoft Graph的AppId,需要获取其对应的服务主体ID作为权限授予的ResourceId:
# 获取Microsoft Graph的服务主体
$graphSp = Get-MgServicePrincipal -Filter "appId eq '00000003-0000-0000-c000-000000000000'"
  1. 授予应用权限(管理员同意)
    使用New-MgServicePrincipalAppRoleAssignment命令完成权限授予,参数对应关系如下:
  • ServicePrincipalId:你的应用服务主体ID(即$sp.Id)
  • PrincipalId:你的应用服务主体ID(应用权限是授予自身服务主体)
  • ResourceId:Microsoft Graph的服务主体ID(即$graphSp.Id)
  • AppRoleId:你声明的权限ID(5ac13192-7ace-4fcf-b828-1a26f28068ee,对应DeviceManagementServiceConfig.ReadWrite.All)

执行命令:

# 授予管理员同意的应用权限
New-MgServicePrincipalAppRoleAssignment `
    -ServicePrincipalId $sp.Id `
    -PrincipalId $sp.Id `
    -ResourceId $graphSp.Id `
    -AppRoleId "5ac13192-7ace-4fcf-b828-1a26f28068ee"

说明

  • 该操作需要具备Global Administrator或Privileged Role Administrator等有权限授予管理员同意的角色。
  • 若要授予委托权限(Type="Scope"),逻辑类似,但需要通过创建OAuth2PermissionGrant完成,不过你的场景是应用权限(Type="Role"),上述方法完全适用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 11:50:09