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

Azure中为新建企业应用批量添加6个组的PowerShell脚本咨询

问题解决:为Azure企业应用批量分配指定组

一、App Role(应用角色)概念说明

应用角色是企业应用预先定义的权限集合,用于管控用户/组对应用的访问范围。绝大多数企业应用默认会提供名为Default Access的角色,该角色授予基础访问权限,也是最常用的分配角色——你示例脚本里的$app_role_name = "Default Access",就是指定用这个默认角色完成组权限分配。

二、批量分配6个指定组的脚本实现

你现有脚本仅支持单一组分配,要批量处理6个组,只需将目标组ID整理为列表,循环执行分配逻辑即可:

1. 定义核心参数

# 替换为你的6个目标组ID
$GroupIDs = @(
    "GroupID-1",
    "GroupID-2",
    "GroupID-3",
    "GroupID-4",
    "GroupID-5",
    "GroupID-6"
)
$app_name = "你的企业应用名称"
$app_role_name = "Default Access"

2. 预获取服务主体与应用角色

# 获取企业应用对应的服务主体
$sp = Get-AzureADServicePrincipal -Filter "displayName eq '$app_name'"
# 获取指定的应用角色
$appRole = $sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }

# 校验:未找到目标角色时终止脚本
if (-not $appRole) {
    Write-Error "未找到应用角色:$app_role_name"
    exit
}

3. 循环执行组权限分配

foreach ($GroupID in $GroupIDs) {
    try {
        # 获取当前组对象
        $AADGROUP = Get-AzureADGroup -ObjectId $GroupID
        # 执行组权限分配
        New-AzureADGroupAppRoleAssignment -ObjectId $AADGROUP.ObjectId `
                                           -PrincipalId $AADGROUP.ObjectId `
                                           -ResourceId $sp.ObjectId `
                                           -Id $appRole.Id
        Write-Host "已成功为组 [$($AADGROUP.DisplayName)] 分配应用权限" -ForegroundColor Green
    }
    catch {
        Write-Host "分配组 [$GroupID] 失败:$($_.Exception.Message)" -ForegroundColor Red
    }
}

三、关键参数解析

  • ObjectId/PrincipalId:均填写组的ObjectId,因为组既是权限分配的目标对象,也是权限的主体
  • ResourceId:企业应用对应的服务主体(Service Principal)的ObjectId
  • Id:目标应用角色的唯一标识(需通过显示名称查询获取,不能直接用角色名称)

四、注意事项

  1. 执行脚本前需通过Connect-AzureAD登录到正确的Azure租户
  2. 确保账号拥有企业应用权限分配的对应权限
  3. 若目标企业应用无Default Access角色,可在应用的「应用角色」配置页查看可用角色,替换$app_role_name的值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 03:48:17