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

如何通过Azure Bash脚本将多个Service Principal添加至AAD组?

将多个服务主体添加到Azure AD管理组的Bash脚本解决方案

前提条件

  • 已安装并升级至最新版Azure CLI:az upgrade
  • 已通过Azure CLI登录并拥有足够权限:需要能读取服务主体、修改目标AAD管理组成员的权限(如GroupMember.ReadWrite.All)

脚本实现

以下脚本可批量将指定服务主体添加到目标AAD管理组:

# 配置参数:替换为你的管理组名称和服务主体列表
MGMT_GROUP_NAME="你的AAD管理组名称"
SP_NAMES=("myapp01" "myapp02" "myapp03")

# 获取管理组的Object ID(添加成员需用ID而非名称)
MGMT_GROUP_ID=$(az ad group show --group "$MGMT_GROUP_NAME" --query id -o tsv)

# 检查是否成功获取管理组ID
if [ -z "$MGMT_GROUP_ID" ]; then
    echo "错误:未找到指定的AAD管理组 $MGMT_GROUP_NAME"
    exit 1
fi

# 循环处理每个服务主体
for SP_NAME in "${SP_NAMES[@]}"
do
    # 获取服务主体的Object ID
    SP_ID=$(az ad sp list --display-name "$SP_NAME" --query [0].id -o tsv)
    
    if [ -z "$SP_ID" ]; then
        echo "跳过:未找到服务主体 $SP_NAME"
        continue
    fi
    
    # 执行添加操作
    az ad group member add --group "$MGMT_GROUP_ID" --member-id "$SP_ID"
    
    # 输出结果提示
    if [ $? -eq 0 ]; then
        echo "成功:服务主体 $SP_NAME 已加入管理组 $MGMT_GROUP_NAME"
    else
        echo "失败:无法添加服务主体 $SP_NAME 到管理组"
    fi
done

关键说明

  1. 管理组ID获取:Azure AD组的操作依赖Object ID而非显示名称,因此必须先通过az ad group show获取ID
  2. 服务主体匹配:az ad sp list通过显示名称查询,若存在同名SP会取第一个结果,确保服务主体名称唯一
  3. 错误处理:脚本加入了空值检查和命令执行状态判断,避免因单个SP异常导致整个脚本中断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 12:03:26